Vij*_*jay 12 c stringification c-preprocessor
我有一个C程序如下:
#define f(g,g2) g##g2
main()
{
int var12=100;
printf("%d",f(var,12));
}
Run Code Online (Sandbox Code Playgroud)
当我只运行预处理器时,它将其扩展为
{
int var12=100;
printf("%d",var12);
}
Run Code Online (Sandbox Code Playgroud)
这就是输出为100的原因.
谁能告诉我预处理器如何扩展var##12 to var12?
cob*_*bal 28
没什么太花哨的:##告诉预处理器连接左侧和右侧
请参阅http://en.wikipedia.org/wiki/C_preprocessor#Token_concatenation