代码:
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在预处理时进行替换,且忽略代码逻辑,替换范围为当前位置之后。
时间: 2024-10-12 07:30:53