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

大兔子大兔子 提交于 2020-02-08 01:23:17
//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 );

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!