- 相關推薦
C語言#undef 指令用法
引導語:#undef 指令是可移除 identifier 的當前定義。以下是百分網(wǎng)小編分享給大家的C語言#undef 指令用法,歡迎閱讀!更多精彩內容請持續(xù)關注我們應屆畢業(yè)生考試網(wǎng)!
#undef 指令
取消定義一個給定的 #define。
例如有如下宏定義:
#define LIMIT 40
則指令
#undef LIMIT
會取消該定義。
現(xiàn)在就可以重新定義LIMIT,以使它有一個新的值。即使開始沒有定義LIMIT,取消LIMIT的定義也是合法的。如果想使用一個特定名字,但又不能確定前面是否已經(jīng)使用了該名字,為安全起見,就可以取消該名字的定義。
注意:#define 宏的作用域從文件中的定義點開始,直到用 #undef 指令取消宏為止,或直到文件尾為止(由二者中最先滿足的那個結束宏的作用域)。還應注意,如果用頭文件引入宏,那么,#define 在文件中的位置依賴 #define 指令的位置。
#include
#define X 3
#define Y X*3
#undef X
#define X 2
int main (void)
{
printf ("Y = %d\n", Y);
printf ("X = %d\n", 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 = %d\n", z);
printf ("X = %d\n", X);
return 0;
}
輸出結果:
test.c:4:0: 警告: “X”重定義 [默認啟用]
test.c:2:0: 附注: 這是先前定義的位置
【C語言#undef 指令用法】相關文章:
C語言#define的用法08-19
C語言的常用新指令有哪些09-07
c語言問號冒號的用法09-01
C語言for語句用法詳解10-30
c語言大括號的用法05-24
C語言assert的用法有哪些07-17
C語言預定義宏用法10-06
c語言中time函數(shù)的用法08-27
c語言位運算符的用法指導06-02