#include "stdio.h"
#define a 10
void foo();
void prin();
int main()
{
prin();
printf("%d ", a);
foo();
printf("%d ", a);
}
void foo()
{
#undef a
#define a 50
}
void prin()
{
printf("%d ", a);
}
- 上面代码输出 50 10 10,可以看出define只是在预处理阶段将a替换为相应数值,具体替换的值只与define在文件中的位置有关,与是否在函数内无关。