C語言預處理器 十五

2021-07-12 05:32:23 字數 784 閱讀 6790

#include #include "myfile.h"

/** #define **/

//1、反斜線將定義延續到下一行 "\"

#define a "my first define is n\

ot so ha\

rd,and wh\

o they'er\n" //my first define is not so hard,and who they'er

//2、const 定義全域性常量

const int b = 20;

//3、static 引用 define 作為陣列長度

#define num 50

static int d[num];

const int f = 2*num;

//錯誤

static int c[b]; //教程說是無效

const int e = 2*b; //教程說是無效

//4、巨集重定義 macro redefined

#define num2 2 * 3

#define num2 2 * 4

#define num2 2*3 //以最後一次定義為準

//5、帶引數的 define

#define num3(x) 2*x

//6、##運算子 把變數名粘合

#define num4(n) x##n

//7、有返回值的巨集

#define max(x,y) (x>y?x:y)

#define min(x,y) (x

C語言 預處理器

如果想在下一行延續指令,則在當前行末尾使用 字元 帶引數的巨集 define max x,y x y x y define is even n n 2 0 則i max j k,m n if is even i i 將被替換為 i j k m n j k m n if i 2 0 i 巨集的替換列表...

C語言 預處理器

指令 描述 define 定義巨集 macro include 包含乙個源 檔案 undef 取消已定義的巨集 ifdef 如果巨集已經定義,則返回真 ifndef 如果巨集沒有定義,則返回真 if如果給定條件為真,則編譯下面 else if 的替代方案 endif 結束乙個if.else條件編譯塊...

C語言 預處理器

6 gcc編譯器檢視替換後的編碼 7 標頭檔案相互包含導致的重定義錯誤 指令 描述 define 定義巨集 include 包含乙個源 檔案 undef 取消已定義的巨集 ifdef 如果巨集已經定義,則返回真 ifndef 如果巨集沒有定義,則返回真 if如果給定條件為真,則編譯下面 else i...