當前位置:學者齋 >

計算機 >C語言 >

C語言#undef 指令用法

C語言#undef 指令用法

引導語:#undef 指令是可移除 identifier 的當前定義。以下是本站小編分享給大家的C語言#undef 指令用法,歡迎閲讀!更多精彩內容請持續關注我們應屆畢業生考試網!

C語言#undef 指令用法

 #undef 指令

取消定義一個給定的 #define。

例如有如下宏定義:

#define LIMIT 40

則指令

#undef LIMIT

會取消該定義。

現在就可以重新定義LIMIT,以使它有一個新的值。即使開始沒有定義LIMIT,取消LIMIT的定義也是合法的。如果想使用一個特定名字,但又不能確定前面是否已經使用了該名字,為安全起見,就可以取消該名字的定義。

注意:#define 宏的作用域從文件中的定義點開始,直到用 #undef 指令取消宏為止,或直到文件尾為止(由二者中最先滿足的`那個結束宏的作用域)。還應注意,如果用頭文件引入宏,那麼,#define 在文件中的位置依賴 #define 指令的位置。

#include

#define X 3

#define Y X*3

#undef X

#define X 2

int main (void)

{

printf ("Y = %dn", Y);

printf ("X = %dn", X);

return 0;

}

輸出結果:

Y = 6

X = 2

#include

#define X 3

#define Y X*3

#define X 2 //不可重複定義

int main (void)

{

int z = Y;

printf ("Y = %dn", z);

printf ("X = %dn", X);

return 0;

}

輸出結果:

test.c:4:0: 警告: “X”重定義 [默認啟用]

test.c:2:0: 附註: 這是先前定義的位置

標籤: undef 指令 語言
  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-mo/jsj/cyuyan/o6x1gk.html