#define机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏或定义宏。
宏的申明方式:
#define name(parament-list)stuff
其中的parament-list是一个由逗号隔开的符号表,它们可能出现在stuff中。
注意:
1.参数列表的左括号必须与name紧邻
2.如果两者之间有任何空白存在,参数列表就会就会被解释为stuff的一部分
提示:所以用于对数值表示式进行求值的宏定义都应该加上括号,避免在使用宏时由于参数中的操作符或临近操作符之间不可预料的相互作用(优先级问题)
#define替换规则
1.在调用宏时,首先对参数进行检查,看看是否包含任何由#define定义的符号。如果是,它们首先被替换。
2.替换文本随后被插入到程序中原来文本的位置。对于宏,参数名被他们的值所替换。
3.最后,再次对结果文件进行扫描,看看它是否包含任何由#define定义的符号。如果是,就重复上述处理过程。
注意:
1.宏参数和#define定义中可以出现其他#define定义的符号,但是对于宏,不能出现递归。
2.当预处理器搜索#define定义的符号的时候,字符串常量的内容并不被搜索。
那么今天分享就到这里,谢谢大家!!!