編譯基礎

1、基本宏含義:

__LINE__被編譯文件行號%dide


__FILE__被編譯文件名%s優化


__DATE__編譯的日期%sspa


__TIME__編譯的時間%s字符串


__STDC__判斷當前使用的編譯器是否符合C標準:不符合 0 符合 1編譯器

二、基本術語:

BSSBlock Started by Symbol 由符號開始的塊(未初始化的區域)it

三、gcc選項:

-c編譯,生成 .oobj文件編譯

-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)

相關文章
相關標籤/搜索