#define用法及注意事项
1.一般形式:
#define 标识符 记号序列
例:#define G 9.8
2.带参数形式
#define 标识符(标识符表 opt) 记号序列
例:#define SQUARE(x) ((x)*(x))
注意事项:
注意括号使用,不然可能会出现歧义,如果定义成
#define SQUARE(x) x*x
则 SQUARE(1+1) ,被替换成 1+1*1+1 。
3. 记号序列中特殊符号的使用
1)#号使用
#号作用是将其后的形参添加双引号。
例:#define PATH(dir) #dir
PATH(user\temp),被替换成 "user\temp"
注意事项:
如果参数中存在“或\等,需转义。
2)#@使用
#@作用是将其后的形参添加单引号。
例:#define PATH(dir) #@dir
PATH(a),被替换成 ‘a’
3)##使用
##作用是连接形参和其他标识符。
例:#define cat(x, y) x ## y
cat(123,456) ,被替换成123456。