22 條件編譯使用分析

2021-09-29 10:39:52 字數 1310 閱讀 6090

條件編譯的意義:

乙份**支援多種產品版本切換

條件編譯的本質

條件編譯時預編譯指示命令用於控制是否編譯某段**

#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...