#undef的用處

如果你想定義這個宏那就#define X
如果你不想讓你已經#define X的宏在其他其他地方由於引入了這個包含宏的.h文件而引起一些編譯問題,那你就#undef X掉,就這麼簡單。
舉個簡單的例子。
有1.c,11.h,12.h三個文件
其中在11.h中定義了#define X extern
x int a;
而在12.h中你又定義了#define X int
x b;

而在1.c中同時包含了這2個頭文件,那就會引起一些問題,此時你必須把其中一個或者這兩個都#undef掉來確保宏的正常。


#undef只是撤消掉掉原來定義的宏,
但是不會取消掉你已經用這個宏定義的變量
#define X extern
x int a;
#undef X

你仍然可以使用這個a,但不能用X了,當然你再定義X成什麼就隨便了
你也可以再定義成
#define X extern
x int a;
#undef X
#define X int
X b;
#undef X

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章