C语言进阶--#和##运算符

##运算符用于在预处理器粘连两个标识符

##的连接作用实在预处理期完成的,因此只在宏定义中有效

编译器不知道##的连接作用

用法:

#define BB(a, b) a##b

int BB(a, 1);   //int a1;

a1 = 2;

 

#运算符用于预处理期将宏参数转换为字符串

#的转换作用是在预处理期完成的,因此只在宏定义中有效

编译器不知道#的转换作用

用法

#define AA(x) #x

printf("%s\n", AA(hello world!));

posted @ 2023-05-28 21:42  ys_nana  阅读(108)  评论(0编辑  收藏  举报