c++中宏的标记连接操作(##)

//by 鸟哥 qq1833183060 -- 
//参考https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2012/09dwwt6y(v=vs.110)
// preprocessor_token_pasting.cpp
#include <stdio.h>
#define paster( n ) printf( "token" #n " = %d", token##n )
int token9 = 9;

int main()
{
   paster(9);
}

//输出为:token9 = 9
//

其中宏 paster(9) 展开过程为
1、

printf_s( “token” #9 " = %d", token##9 );

2、

printf( “token” “9” " = %d", token9 );

它等价于

printf( “token9 = %d”, token9 );

发布了60 篇原创文章 · 获赞 10 · 访问量 3740

猜你喜欢

转载自blog.csdn.net/sinat_18811413/article/details/104214945