條件編譯的意義:
乙份**支援多種產品版本切換
條件編譯的本質
條件編譯時預編譯指示命令用於控制是否編譯某段**
#define c 1
#if (c==1)
printf("this is first printf ;;;\n");
#else
printf("this is second printf ...\n");
#endif
預編譯器根據條件編譯指令有選擇的刪除**
編譯器不知道**分支的存在
if ... else.. 語句在執行期進行分支判斷
條件編譯指令在預編譯期進行分支判斷
可以通過命令列定義巨集
gcc -d
macro= value file.c
或gcc -d
macro file.c
#include 的本質
#include的本質是將已經存在的檔案內容嵌入到當前檔案中
#include 的間接包含同樣會產生嵌入檔案內容的操作
單步編譯: gcc -e a.c -o a.i
條件編譯的使用:
#ifndef _aaaa_
#define _aaaa_
// **段
#endif
條件編譯,防止**段重複包含
條件編譯的意義
條件編譯使得我們可以按不同的條件編譯不同的**段,因而可以產生不同的目標**
#if ...#else..#endif被預編譯器處理,而if...else...語句被編譯器處理,必須被編譯進目標**
實際工程中條件編譯主要用於以下兩種情況:
1.不同的產品線共用乙份**
2區分編譯產品的除錯版和發布版
#if debug
#define log(s) printf("[%s:%d) %s\n",__file__,__line__,s)
#else
#define log(s) null
#endif
複習c語言深度剖析 22 條件編譯使用分析
1.基本概念 條件編譯的行為類似於c語言中的if else 條件編譯是預編譯指示命令,用於控制是否編譯某段 可以利用預處理器調整 刪除 的操作。2.程式設計實驗 條件編譯初探 include define c 1 int main 編譯器處理後的 為 int main 執行結果 總結 if else...
3 2 條件編譯的使用分析
1 條件編譯的行為類似於c語言中的if.else 條件編譯是預編譯指示命令,用於控制是否編譯某段 2 條件預編譯技術 ifndef con h 和標頭檔案一樣 define con h endif 3 條件編譯的意義 1 條件編譯使得我們可以按不同的條件編譯不同的 段,因而可以產生不同的目標 2 i...
NO11 條件編譯使用分析
條件編譯的行為類似於c語言中的if.else.根據條件來確定是否進行相關編譯,要知道條件編譯是預編譯指示命令,在進行編譯已經選擇要編譯內容,及根據選擇編譯某段 預編譯器根據條件編譯指令有選擇的刪除 編譯器不知道 分支的存在 可以通過命令列定義巨集 gcc dmacro value file.c or...