Beyond the Void
BYVoid
C語言學習:如何由dos向windows轉變
本文正體字版由OpenCC轉換

很多人學C語言很長一段時間了,還不知C究竟能幹什麼,以爲學習c語言沒什麼用,純粹是爲了應付學校的考試.更有人說"學C語言?別做如此愚蠢的行爲 了!趕快學C++吧!“這種看法是不對的,不應該把c跟c++之間划起絕對的界限,過分看重c++而把c貶得一無是處,這是很片面的.C++功能雖然強 大,但它畢竟是c的"超集”,在c++裏有哪一處找不到c的影子呢?沒有c的支持,c++只能是無本之木。

一般情況下,c++編程方 式編寫的程序源代碼量小,但編譯後的代碼量較大,運行的速度略低,不過開發時的工作量和工作難度較小;而c編程方式編寫的源代碼量較大,但可執行的效率 高.如果一些對速度要求高,尤其是對硬件操作較多的程序,大多數還是用c編程方式開發的(用C又比用匯編簡單,易於實現).另外,學Win32 C程序設 計還有助於更深入地瞭解Windows 的內幕和Win32 API。

任何的編程語言都是一種工具,學習語言的目是要使用它來編寫出實際需要的軟件來,而軟件作爲一個用戶程序,運行時要依賴操作系統,大多數人使用什麼操作系統,我們就要編寫出基於哪一種平臺上的程序來.這樣,軟件纔會有更大的市場。

現在市面上出現的有關c語言方面的書大多是教授DOS下的c,上機實習也是在Turbo C 2.0(簡稱Tc)環境下轉來轉去.編程環境的單調總使人 感到不爽.這也沒辦法,dos 下的c是最簡單的,初學者當然要從最簡單的入門啦.連比較有名的計算機專家譚浩強編的書也都是贊成從dos下的c學起的. 再說,一個剛剛入門的人想在 windows 這樣的多進程,多線程的操作系統下用c編程,那似乎又不太現實.(那要了解在windows下,一個 win32程序大體上是怎樣執行的.要對系統有比較多的瞭解纔行,一個初學者暫時還不具備那麼多的知識)但我們的腳步又不能夠只停留在dos裏,應該積極 地從dos向windows轉變.在dos的時代,我們可以對dos下的編程迷戀,但現在都是windows橫行霸道的時代了,我們就應用c語言編寫 windows平臺上的程序,因時而變,學以致用.是時代使然!如果現在還是dos雄霸天下的話,那我就不會寫這篇狗屁不通的文章來遺笑大方了,不被臭雞 蛋扔死纔怪呢!

“變法"是大勢所趨的了,關鍵是怎麼變,不單單是學習c語言的人如此,就連學c++的人都這樣,筆者曾經在QQ上碰到 一個學了c++將近一年的小夥,居然問我,他想編一個windows窗口,該怎麼下手,如果學一門語言用了一年時間,只是學了一點語法知識,卻沒有編過一 道程序,那實在是一種悲哀.下面我談談從dos向windows轉變的一些個人見解,(這純屬個人觀點,僅供參考,如果您已是高手,完全不必要在此浪費時 間):

一.拓寬視野,改變偏見

別老以爲c只是dos特有的東西,一提到c語言就認爲c只能在dos下編程.其 實,這是被tc束縛了意識,我們在學校裏平時就只在dos的tc 裏面用c編程,很少用到"圖形模式”,整天面對?quot;烏黑黑"的屏幕,也難怪有些 人一看到一個用c語言描繪出來的像windows的窗口便以爲是c ++的手筆.其實,作爲一種語言,可以在任何一種平臺上編程,只是接口不同而已,只要 找到適合該平臺的編程工具即可,c語言當然也能在windows下大放異彩.眼界放寬點,改變偏見,必有精彩發現.

二.選擇優秀的編程工具.

“有好的工具,做起事來就事半功倍”.在dos下我們常用tc或bc(borland c).在windows下可以用c++builder 或者 visual c++ 來編程,最好用visual c++ 畢竟是微軟的東西嘛!微軟一天不垮臺,編程者的飯碗就不會掉的啦 ^_^ .再 說,windows操作系統是微軟出的,其內幕微軟是最清楚不過的了,在應用程序接口上,相信vc也是做得最好的.不過用vc++6來編c程序會恨煩的, 大家要有心理準備.同時可以選擇多種編程工具,例如彙編,可以加強對windows的瞭解,是成爲高手的好方法。

三.加強對windows的瞭解.

可以說編一個程序,就是用一種語言的語法形式將數據結構和表面的執行過程描述出來.在不同的操作系統下,其程序的執行過程是不同的.我們應該 對 windows的系統機制最起碼有個大體的瞭解,纔有可能編寫windows的程序.dos是單進程單線程的系統,進程從頭到尾的順序執行, 而 windows是多進程、多線程的操作系統,是基於事件的,消息驅動的操作系統.明白這些是在windows下編程必不可少的,多學學它,你會發 現 windows 和 dos有很多的不同之處。

四.採取靈活多變的學習方法.

在不同的時期,學習不同的東西?可是有些人學習像word,excel這類操作性極強的辦公軟件時,總是先看書,看到尾巴忘了頭,到上機時卻不知所措.這種學習方式是被動的,看這些軟件操作的書,裏面說的都是具體的操作,不親手又怎能接受新知識?

五.多進行比較.

dos和windows有許多共同和不同的地方,如果是從dos學過來的話,在學習過程中不妨多進行比較,把不同的地方記下,相同的地方可以跳過,這可以快速地瞭解系統的不同之處,迅速地學到東西!

學習程序設計,我主張"實踐->理論->再實踐"的方式,在編程的初期,不管你會不會寫程序,都應先實踐,(這裏的實踐是指編程工具操作方 面的實踐),學會操作編程工具.也許有些人會說:“廢話!沒有理論,又怎麼實踐?“不錯,當你坐在一臺電腦面前不知所措時,你就會想方設法使自己學會操作 它,主動看書,看聯機幫助,請教別人,忙得個"不亦樂乎”,這不是變"被動"爲"主動"了嗎? 邊學習邊操作,以實踐來帶動理論的學習,接着達到"理論與 實踐同步”,就可闖過第一關,學會了編程工具的基本操作,可以爲以後上機實踐打下鋪墊.

光學會操作像vc這類的工具還不行,工具是死 的,人才是活的,不會編程只能是空操作,你還會說:“廢話!沒有理論,怎麼實踐?“的,這時就要學習編程的真功夫了,也就是我說的第二階段–學"理論” 階段,深入研究前輩們的著作,吸取前人的智慧精華爲我所用,紮紮實實打好編程內功,功夫到家了就應該"再實踐”,將學到的東西運用於實際,編寫出我們需要 的軟件來.學以致用嘛,呵呵~~這種方式總比"先學好語法的條條框框,再上機實踐"的效果好得多啦.


上次修改時間 2017-02-03

相關日誌