C语言宏应用——-#define STR(X) #X

#:会把参数转换为字符串

#define STR(x)    #x#define MAX    100

STR(MAX) 会被扩展成"MAX"

这样就有一个缺陷,如果入参为宏,并不能打印出宏的值(比如上一个例子,只打印出了MAX,并没有打印出MAX的值)

可以将宏扩展下

 

#define _STR(x)    #x#define STR(x)    _STR(x)#define MAX    100

 

STR(MAX)会按照以下顺序替换

STR(100)

_STR(100)

"100"

 

 

 

最后输出100