一、宏指令
# 空指令,无任何效果
#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为止;否则就不编译。