我剛剛開始用C編程,但我完全困惑。如何在我的電腦上獲得C標準?
我以前寫在Visual Studio 2012的代碼,但它與C89兼容(ANSI C?)。我用MinGW編譯器安裝了CodeBlocks。我想學習如何知道我可以編程的計算機中的C標準是什麼? C89,C90,C99甚至是C1X?或者我不明白它的意思。什麼決定了我的電腦中的C標準?編譯器還是IDE?
我剛剛開始用C編程,但我完全困惑。如何在我的電腦上獲得C標準?
我以前寫在Visual Studio 2012的代碼,但它與C89兼容(ANSI C?)。我用MinGW編譯器安裝了CodeBlocks。我想學習如何知道我可以編程的計算機中的C標準是什麼? C89,C90,C99甚至是C1X?或者我不明白它的意思。什麼決定了我的電腦中的C標準?編譯器還是IDE?
它不依賴您的計算機上,但你的編譯器。畢竟,計算機(我的意思是CPU)並不涉及C而是使用機器指令。編譯器根據某個標準解釋C並將其轉換爲CPU友好的指令。
GNU Compiler Collection可以處理各種C標準,您可以從-std=
flag中選擇。
加法:在某些(嵌入式)系統中,您只有有限的編譯器選擇,它們可能只支持有限數量的標準。因此,通過這種方式,可用的C標準可能僅限於您的計算機。
謝謝,這就是我一直在尋找 – Andrius
增添幾分到Kninnug的優良回答可以幫助您瞭解這些標準之間的差異:
維基百科有描述各種C語言的之間的區別許多有用的鏈接,甚至是從哪裏得到的「定稿」標準,這是免費的。我發現這些對編寫嚴格符合的代碼非常有用。
http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29如果您在POSIX(例如,Linux)的世界而努力的POSIX擴展爲UNIX世界的C標準是有用的,它指向http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
然後。一個好的起點是
http://pubs.opengroup.org/onlinepubs/009695399/
這就是你得到的東西,如getopt的(),未在C標準中。我再次推薦探索關於這個主題的維基百科頁面。
編譯器是實際上必須遵循的標準,如果這就是你問的東西。 – chris
@chris那麼究竟是什麼決定了C語言的標準呢? – Andrius
@Andrius你的意思是「標準」? – johnchen902