C語言是一種面向底層的編程語言,要寫好C程序,必須對操作系統(tǒng)的工作原理非常清楚,因為操作系統(tǒng)也是用C寫的,我們用C寫應(yīng)用程序直接使用操作 系統(tǒng)提供的接口。Linux是一種開源的操作系統(tǒng),你有任 何疑問都可以從源代碼和文檔中找到答案,即使你看不懂源代碼,也找不到文檔,也很容易找個 高手教你,各種郵件列表、新聞組和論壇上從來都不缺樂于助人的高手;而Windows是一種封閉 的操作系統(tǒng),除了微軟的員工別人都看不到它的源代碼,只能通過文檔去猜測它的工作原理,更糟糕的是,微軟向來喜歡藏著揶著,好用的功能留著自己用,而不會寫到文檔里公開。
在編寫程序的過程中,如果都是使用C語言標(biāo)準(zhǔn)庫,比如scanf和printf函數(shù),基本上一樣的,沒有涉及到系統(tǒng)的庫函數(shù)或者編程方法(即只用符合ANSI C標(biāo)準(zhǔn)的代碼和方法)的時候就沒有什么區(qū)別。
如果涉及到系統(tǒng)編程,二者就有所區(qū)別,主要是庫函數(shù)有所不同,而且文件的系統(tǒng)也不同、對某些函數(shù)的執(zhí)行方式也不同。C語言的底層開發(fā)就涉及到了系統(tǒng)內(nèi)核的問題,對于linux來說,可以清楚的知道它里面是什么結(jié)構(gòu)。編輯器環(huán)境不一樣,linux采用gcc編譯器,gdb調(diào)試工具,和多種可視化的編輯器如emacs、kedit等等,也有文本的vim,GDB的功能是非常強大的。另外,所針對的人群也有所不同,windows主要是面向商業(yè)化的開發(fā),而絕大多數(shù)的編程愛好者則屬于自由開闊的系統(tǒng)下編程,不愿意禁錮在windows下。此外,在版權(quán)問題方面,也有很大的差別。windows系統(tǒng)下面好多好多東西都涉及版權(quán)問題,linux的free軟件雖然是開放軟件,不過好多都是免費用于商業(yè)化的。