C 如何判斷編譯器是否支援C90 C99?

2022-02-24 16:01:16 字數 1477 閱讀 7398

參考:《c primer plus》,stephen prata著,姜佑譯。

ansi/iso c標準

美國ansi成立委員會x3j11,於89/90年,99年,11年,發布c標準:c89/c90,c99,c11。

ansi/iso 各版本c標準

c標準

描述

經典c也稱k&r c,87年k&r著作《c語言程式設計》,成為c指導標準

c89/c90

89年ansi c,90年iso c,定義了c語言和c標準庫。x3j11開發,同一套標準,發布名稱/機構不同。

用意:作為實現,應該針對目標計算機定義適合特定操作,而不是強加乙個抽象、統一的定義。

特點:1.信任程式設計師;

2.不妨礙程式設計師做任何事;

3.語言簡單精煉;

4.只提供一種方法執行一項操作;

5.不為程式可移植性犧牲效率。

c99c9x委員會修訂,遵循c90原則。

新特性:

1.支援國際化程式設計;

2.調整現有實踐致力於解決明顯的缺陷;

3.為適應科學和工程專案中關鍵數值計算,提高c適應性;

c11特點:

1.不強調信任程式設計師;

2.不要求服務小型機市場**商支援目標環境用不到的特性;

c語言標準眾多,要如何判斷編譯器所支援的標準版本?

乙個簡單的方法是,依據不同版本標準所支援的資料型別關鍵字來判別,如下表所示:

c語言資料型別關鍵字

k&r給出的關鍵字(87 經典c)

c90新增關鍵字

c99新增關鍵字

intsigned

_bool

long

void

_complex

short

_imaginary

unsigned

char

float

double

那麼,可以在c程式中,定義相應型別,然後build是否支援來判斷。

下面在ubuntu os下以為例,進行測試。

gcc版本=4.8.4

測試**:

//

c99.c

#include #include

int main(void

)

else

return0;

}

執行結果表明編譯器支援c99:

利用C 9 0新語法如何提公升if語句美感

前言 c 語言一貫秉承簡潔優美的宗旨,每次公升級都會帶來一些語法糖,讓我們可以使 變得更簡潔。本文分享兩個使用 c 9.0 提公升 if 語句美感的技巧示例。使用屬性模式代替 isnullorempty 在任何你使用 isnullorempty 的時候,可以考慮這樣替換 string?hello h...

c 編譯器編譯過程

編譯過程 編譯過程分為四步 預處理 編譯 彙編 連線 1.預處理 預處理主要處理原始檔中的 include define 等預處理等命令 預處理主要完成的工作有 參考 程式設計師的自我修養 1 刪除 define,展開巨集 2 處理條件編譯指令。預處理程式先判斷條件,再根據條件修改源 3 刪除注釋 ...

C 編譯器大全

dev c 優點 功能簡潔 noip官方編譯器 缺點 功能並不完善 不適合商業開發 面向人群 c 初學者 dev c 現在已經更名為smart c 但noip不使用該編譯器 visual c 或visual mingw 優點 1.與windows緊密結合 2.強大的類庫支援和類改造能力 3.擁有高效...