通过本文你会了解到:
1. 宏定义中#和##的含义
2. 简洁实例
宏定义中#和##的含义
# 的作用是将右边宏定义参数转换成字符串
## 的作用是将左右两边的参数或字符连接起来
简洁实例
#include <stdio.h>
#define str(s) #s
#define cat(a, b) a##b
int main(int argc, char **argv)
{
int i1 = 1;
printf("%s\n", str(ssss)); //将ssss转换成字符串并输出。
printf("%d\n", cat(i, 1)); //将i和1连接起来,因此打印i1的值。
return 0;
}
运行结果:
$ ./test
ssss
1
代码地址:
https://github.com/zsirkg/myWorks/blob/master/macro/symbol_%23.c