-
1 # 跨越一千五百年
-
2 # 和不同
語法只和編譯器有關。
比如兩個平臺下都使用GCC相近版本,則支援的語法就是相同。
如果編譯器不同,可能支援的語法就會有一定區別。比如GCC有自身支援的pragma,與Visual C++的不同。
C語言本身語法簡單,一般情況下,嚴格使用C89/C99編碼,就可以相容絕大多數平臺了。但程式是否相容,還和其使用的庫有關。
Linux和Windows這兩個系統的標準庫差別較大,在實際應用中,除了純命令列計算類C程式,其它C程式多半都得使用條件編譯之類的方式以便同時支援兩個平臺。
-
3 # 半杯茶的小酒杯
單就程式碼語法而言,Linux C和Win C基本上沒有什麼區別。
C語言的語法規則由標準化組織制定早在上世紀80年代,美國國家標準局為了避免各個開發商使用的C語言語法差異,就給C語言制定了一套完整的標準,稱為ANSI C。
1989年,ANSI釋出了第一個完整的C語言標準——ANSI X3.159—1989,簡稱“C89標準”。
C89在1990年被國際標準組織ISO(International Standard Organization)一字不改地採納,從此便由美國標準變成了國際標準。
1999年,在做了一些必要的修正和完善後,ISO釋出了新的C語言標準,命名為ISO/IEC 9899:1999,簡稱“C99標準"。
在2011年12月8日,ISO又正式釋出了新的標準,稱為ISO/IEC9899: 2011,簡稱為“C11標準”。
開發者根據C語言標準實現編譯器C語言編譯器普遍存在於各種不同的作業系統中,例如Microsoft Windows, Mac OS X, Linux, Unix等。
GCC:GNU組織開發的開源免費的編譯器。
MinGW:Windows作業系統下的GCC。
Clang:開源的BSD協議的基於LLVM的編譯器。
不過雖然基於同樣的標準,各個編譯器對標準的實現還是有差異的。
目前最符合和接近C++標準的編譯器有為GNU GCC,VC++ 6.0 對標準支援的不是很好。GCC對C標準的支援還是不遺餘力的,相比之下,微軟的visual studio態度就差強人意了。
舉個簡單的例子,void main(){}是MicroSoft 公司的用法,不符合C++規範,詳細的可以看我之前的文章。
回覆列表
語法沒有差別。但是實現有差別,因為基於不同的系統平臺。
另外,windows有自己的安全函式,所以如果要在windows平臺實現要使用安全函式。
為了實現效率,儘量使用平臺函式,不要直接用c語言的方法,比如檔案操作。