标签:
代码:
1 #include <iostream> 2 3 using namespace std; 4 5 #define a 10 6 7 void foo(); 8 void bar(); 9 10 void foo(){ 11 #undef a 12 #define a 50 13 } 14 15 int main(){ 16 17 cout<<"main "<<a<<endl; 18 foo(); 19 cout<<"main "<<a<<endl; 20 bar(); 21 cout<<"main "<<a<<endl; 22 23 return 0; 24 } 25 26 void bar(){ 27 #undef a 28 #define a 100 29 cout<<"bar "<<a<<endl; 30 }
输出:
main 50 main 50 bar 100 main 50
分析:
define在预处理时进行替换,且忽略代码逻辑,替换范围为当前位置之后。
标签:
原文地址:http://www.cnblogs.com/hu983/p/5508516.html