C语言 宏的高级用法

1. 宏参数里的#号

  在一个宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组。简化理解:#是“字符串化”的意思,出现在宏定义中的#是把跟在后面的参数转换成一个字符串
#define ERROR_LOG(module)   fprintf(stderr,"error: "#module"\n")

ERROR_LOG(“add”); 转换为 fprintf(stderr,”error: “add”\n”);
例子如下:

#include 
#define ERROR_LOG(module)   fprintf(stderr,"error: "#module"\n")
int main(int argc, char *argv[])
{
    ERROR_

你可能感兴趣的:(C语言,c语言,宏)