以下代码可以正常使用
void a()
{
printf("In fn");
}
#define a() printf("In macro")
void main()
{
a();
}
O / p在宏
中但是在funcn定义之前定义宏时,请查看此代码。(引发编译错误)
#define a() printf("In macro")
void a()
{
printf("In fn");
}
void main()
{
a();
}
我的问题为什么它在宏定义在函数声明之后才起作用,在它之前不起作用....
答案 0 :(得分:3)
在第一种情况下,结果是:
void a()
{
printf("In fn");
}
void main()
{
printf("In macro");
}
在第二个:
void printf("In macro")
{
printf("In fn");
}
void main()
{
printf("In macro");
}
这显然不是c代码。
在compilaton之前替换定义。