C/C++中define的使用

代码:

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

posted @ 2016-05-19 14:16  hu983  阅读(260)  评论(0编辑  收藏  举报