ANSI C规定:#前可以有空格或者tab,#和指令其余部分之间也可以有空格,可以出现在任何地方,作用域从定义处到文件结尾. 因为预处理开始前,系统会删除反斜线和换行符的组合,故可以把指令扩展到几个物理行,这些物理行组成单个逻辑行. //每个#define行(指逻辑的行):三部分组成 //指令本身 宏 替换列表(或主体) #define PI 3.141592653 宏分为类对象宏(代表值的宏)和类函数宏宏的名字中间不能有空格,必须遵循c命名规则,从宏变成最终的替换文本叫宏展开,预处理器不进行计