(二) 预处理的文法
来源: 网络用户发布,如有版权联系网管删除 2016-07-09
(二) 预处理的文法 预处理并不分析整个源代码文件, 它只是将源代码分割成一些标记(token), 识别语句中哪些是C语句, 哪些是预处理语句. 预处理器能够识别C标记, 文件名, 空白符, 文件结尾标志.
预处理语句格式: #command name(...) token(s)
1, command预处理命令的名称, 它之前以#开头, #之后紧随预处理命令, 标准C允许#两边可以有空白符, 但比较老的编译器可能不允许这样. 若某行中只包含#(以及空白符), 那么在标准C中该行被理解为空白. 整个预处理语句之后只能有空白符或者注释, 不能有其它内容.
2, name代表宏名称, 它可带参数. 参数可以是可变参数列表(C99).
3, 语句中可以利用""来换行.
e.g.
# define ONE 1 /* ONE == 1 */
等价于: #define ONE 1
#define err(flag, msg) if(flag)
printf(msg)
等价于: #define err(flag, msg) if(flag) printf(msg)
查看评论 回复