條件編譯使用分析

2021-08-02 15:27:15 字數 2188 閱讀 5622

專題三:編譯預處理。包括以下章節:

3-1.c

#include

//如果沒有定義巨集常量c,可以通過命令:gcc -dc=1 -e 3-1.c -o 3-1.i 來定義巨集常量c,方便除錯。

#define c 1

int main()

else

return

0;}

3-1.i

# 1 "3-1.c"

# 1 ""

# 1 "《命令列》"

# 1 "3-1.c"

/*......此處省略n行......*/

# 940 "/usr/include/stdio.h" 3 4

# 2 "3-1.c" 2

int main()

else

return

0;}

3-2.c

#include "3-2.h"

#include "global.h"

int main()

3-2.h

#include "global.h"
global.c

int global = 2;
3-2.i

# 1 "3-2.c"

# 1 ""

# 1 "《命令列》"

# 1 "3-2.c"

# 1 "3-2.h" 1

# 1 "global.h" 1

int global = 2; //重定義了global

# 2 "3-2.h" 2

# 2 "3-2.c" 2

# 1 "global.h" 1

int global = 2;

# 3 "3-2.c" 2

int main()

結果:

# 1 "《命令列》"

# 1 "3-2.c"

# 1 "3-2.h" 1

# 1 "global.h" 1

int global = 2;

# 5 "3-2.h" 2

# 2 "3-2.c" 2

int main()

結果編譯正確:

結果:

22 條件編譯使用分析

條件編譯的意義 乙份 支援多種產品版本切換 條件編譯的本質 條件編譯時預編譯指示命令用於控制是否編譯某段 define c 1 if c 1 printf this is first printf n else printf this is second printf n endif 預編譯器根據條...

條件編譯使用

include define c 1 int main 例子1 通過命令列定義巨集 include define c 1 int main 編譯命令 gcc dc 1 test.c 問題 間接包含同乙個標頭檔案是否會產生編譯錯誤?條件編譯可以解決標頭檔案重複包含的編譯錯誤 例子2 產品線區分及除錯 ...

預編譯處理 條件編譯分析

條件編譯的行為類似於c語言中的if else 條件編譯時預編譯指示命令,用於控制是否編譯某段 示例 條件編譯初探 include define c 1 int main 輸出結果 this is first printf 很明顯,當我們巨集定義常量為1時才會編譯s this is first pri...