我在从 printf() 语句中理解宏函数调用的使用方面遇到了问题。
我有以下代码:
#include<stdio.h>
#define f(g,h) g##h
main()
{
printf("%d",f(100,10));
}
此代码输出“10010”作为答案。
我了解到宏函数调用只是复制粘贴宏函数代码来代替调用,并替换了参数。
所以代码应该是这样的:
#include<stdio.h>
#define f(g,h) g##h
main()
{
printf("%d",100##10);
}
但是当我用替换的宏单独执行上述代码时,我得到一个编译错误。
那么第一个代码如何给出 10010 作为答案,而第二个代码给出编译错误呢?