一、宏指令
# 空指令,無任何效果
#i nclude 包含一個源代碼文件
#define 定義宏
#undef 取消已定義的宏
#if 如果給定條件爲真,則編譯下面代碼
#ifdef 如果宏已經定義,則編譯下面代碼
#ifndef 如果宏沒有定義,則編譯下面代碼
#elif 如果前面的#if給定條件不爲真,當前條件爲真,則編譯下面代碼
#endif 結束一個#if……#else條件編譯塊
#error 停止編譯並顯示錯誤信息
二、文件包含
1、#define AAA
#include "t.c"
#undef AAA
#include "t.c"
2、#ifndef MY_H
#define MY_H
……
#endif
三、帶參數的#define指令
單純的展開,注意括號的使用
#define Cube(x) (x)*(x)*(x) int num=8+2; volume=Cube(num); result : (8+2)*(8+2)*(8+2);
四、 #與##
#:出現在宏定義中的#運算符把跟在其後的參數轉換成一個字符串。有時把這種用法的#稱爲字符串化運算符
##:運算符用於把參數連接到一起
五、條件編譯指令
#if指令檢測跟在製造另關鍵字後的常量表達式。如果表達式爲真,則編譯後面的代碼,知道出現#else、#elif或#endif爲止;否則就不編譯。