c99和c 11的差異之一

2022-02-08 01:38:33 字數 443 閱讀 6703

#include

void main(){

printf("hello world.\n");

gcc hello.c -o hello -std=c99

編譯通過。

但通過如下編譯則失敗——

g++ hello.c -o hello -std=c++11

失敗資訊為:

hello.c:3:11: error: 『::main』 must return 『int』

void main()

^這是因為在c+11中,main必須為int型別,但卻可以不必有返回值;修改**為如下即可——

#include

int main(){

printf("hello world.\n");

/*return 0;  可以不需要這行*/

附gcc/g++編譯命令集合:

C 11 與 C99的相容

c 對以下c99特性的支援納入了新標準之中 1 c99中的預定義巨集 2 func 預定義識別符號 3 pragma操作符 4 不定引數巨集定義以及 va args 5 寬窄字串連線 使用上述巨集可以檢查機器環境對c標準和c庫的支援情況。include using namespace std int...

偶爾回顧一下C99先於C11(三)

結構 typedef 結構struct 關鍵字 struct 用來訪問struct成員的運算子是 不知道為什麼用了鍊錶以後忽然發現不會訪問結構體成員了。可以使用 對結構體成員值進行初始化 struct book struct book unix 結構陣列 struct book unix max u...

c99的新功能

參考 在ansi的標準確立後,c語言的規範在一段時間內沒有大的變動,然而c 在自己的標準化建立過程中繼續發展壯大。標準修正案一 在1994年為c語言建立了乙個新標準,但是只修正了一些c89標準中的細節和增加更多更廣的國際字符集支援。不過,這個標準引出了1999年iso 9899 1999的發表。它通...