欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C宏定义中#和##

程序员文章站 2024-03-22 10:11:40
...

C宏定义中#和##

符号#

#的作用是把参数字符串化. 相当于给参数加上引号.

比如

#define STRING(_name) #_name

int count = 12;
printf("%s = %d\n", STRING(count), count);

输出

count = 12

符号##

##的作用是把前后字符连接起来, 不会在前后加引号.

比如

#define GET_PAGE_WHAT(_attr) page_##_attr

GET_PAGE_WHAT(size) //展开后是: page_size