-
1 # 富士山下ooo
-
2 # 蟲蟲安全
不管是window 和 linux 在C語言標準上都相同的。不過C語言又不同的標準,這些標準又都在大體相同的基礎上,小有差異。
C語言的誕生:c語言是貝爾實驗室兩位超級大咖,超級駭客,在創造Unix OS過程中產生的。他們是肯.托馬斯和丹尼斯.裡奇。
1972年在B語言基礎上丹尼斯·裡奇做了改進最佳化,並把這個新寶寶語言叫C,之後1973年兩位大神用C語言寫出了新的Unix核心,即的UNIX version 5。雖然UNIX的元件流行和發展,C語言也就發展起來了
1978年 裡奇 和布萊恩.柯林漢合著了,流傳至今並一直未程式設計師列為程式設計聖經的《C語言程式設計》(The C Programming Language)。書中介紹的各種語法,作為了C語言的一個標準。我們一般叫它 “K&R C”。
上1983年,由ANSI(美國國家標準委員會)開始發起了第一個實際上C標準的編寫工作,經過6年持久工作,產生了標準ANSI C。ANSI C也叫C89
1990年,ANSI C標準修改版本被美國國家標準委員會採納為ISO/IEC 9899:1990。這個版本有時候稱為C90或者ISO C。這就是C89和C90標準。
2000年3月,ANSI 採納了ISO/IEC 9899:1999 標準。這就是C99標準。
在2011年12月,ANSI 採納了 ISO/IEC 9899:2011 標準。這個就是C11,它是C程式語言的最新標準。
目前使用最多的是ANSI C和C 99。
而在linux下和win下的主要差異是編譯器,類庫和整合開發環境即IDE的不同:
win下常用的C IDE 主要有:
記得大家學C程式設計時候用過的Borland turbo C麼,她就是一個C IDE。
還有VC++ ,VS,C++ Build 等等
Linx下:
主要是Gcc編譯器和Glibc基礎C類庫。
-
3 # 霧鎖瀾江
語言是沒有區別的,你說的那些只是win api中對資料型別的別名或者宏定義,比如winapi其實是__stdcall,LRESULT就是long型的。之所以有這樣的定義是為了能夠讓呼叫者能夠API的宣告上看到更多的資訊。
回覆列表
首先需要宣告一下,c語言就是c語言,windows下的c語言和標準c語言都是c語言,沒有什麼區別。
c語言在任何地方都是c語言,語法什麼的都是一樣的,要說什麼不同的話應該是編譯執行的環境不一樣,執行的平臺不一樣可能會導致有一些細微的差距。
就Linux C和Windows C而言,非要說什麼不同,那就是兩者的平臺不同。Linux和Windows都有各自的平臺各自的API函式庫,這些就會導致一些細小的差異。比如Linux下開啟檔案函式open(),而在Windows下就是fopen(),就是他們的函式名字不同,都是由c語言實現,完成相同的功能。
有些需要針對硬體的c語言就相對會有一些差異了。標準C主要還是直接針對PC端,比如說微控制器C語言,嵌入式C語言就有一些不一樣。像《C primer》、譚浩強的《C程式設計》一般都是針對標準C,針對PC端。而微控制器C語言又有IO口、中斷、暫存器等;中斷的interrupt,暫存器的SFR,都跟標準C有些不一樣,而標準C的一些庫函式在微控制器C中也是不能直接用的。粗略的來說可以說微控制器C是標準C的一個子集,叫上一些微控制器的特定指令,也是屬於C語言。
最後為自己呼籲一波關注,互相關注