需求
需要宏来生成字符串,降低人工输入和防止出错
解决
可以使用 #
, 让相应的参数作为字符串进行填充。
#define OUT(s) fprintf(stderr, "out: " #s "/n");
OUT(div == 0);
// fprintf(stderr, "out: " "div == 0" "/n");
##
可以用来连接多个参数,减少代码生成。用法简单:
#define NAME(n) name##n
int NAME(a);
NAME(a) = 123;
printf("%d\n", NAME(a));