##运算符用于在预处理器粘连两个标识符
##的连接作用实在预处理期完成的,因此只在宏定义中有效
编译器不知道##的连接作用
用法:
#define BB(a, b) a##b
int BB(a, 1); //int a1;
a1 = 2;
#运算符用于预处理期将宏参数转换为字符串
#的转换作用是在预处理期完成的,因此只在宏定义中有效
编译器不知道#的转换作用
用法
#define AA(x) #x
printf("%s\n", AA(hello world!));
标签:进阶,BB,##,C语言,运算符,编译器,预处理 From: https://www.cnblogs.com/ysnana/p/17438931.html