源代码:
#include <iostream>
using namespace std;
void main()
{
int b(5);
#define b 2
#define f(x) b*(x)
int y(3);
cout<<f(y+1)<<endl;
#undef b
cout<<f(y+1)<<endl;
#define b 3
cout<<f(y+1)<<endl;
}
using namespace std;
void main()
{
}
运行结果为:
8
20
12
结论:预处理命令执行在编译之前,而且在进行宏替换时,只是简单的文本替换。
20
12