__LINE__被編譯文件行號%dide
__FILE__被編譯文件名%s優化
__DATE__編譯的日期%sspa
__TIME__編譯的時間%s字符串
__STDC__判斷當前使用的編譯器是否符合C標準:不符合 0 符合 1編譯器
BSSBlock Started by Symbol 由符號開始的塊(未初始化的區域)it
-c編譯,生成 .o的obj文件編譯
-o自定義目標名class
-std = c89 或 -std = c99gcc
-pedantic根據C標準產生警告消息gc
-Wall編譯器檢測到可能的錯誤時生成警告消息
-O0不優化
-O1缺省優化
-O3最高優化
-E僅預處理
-S產生彙編
例如:gcc xxx.c -lm
##是鏈接符號,鏈接兩個宏#define ABC(xyz)MY_##xyz
# 是把名字替換成字符串#define ABC(xyz)#xyz
#definePRINT(n)printf(#n" = %d\n",n);
即:PRINT(i/j) -> printf("i/j = %d\n",i/j);
#pragma pack(push, n)
#pragma pack(pop)