#undef 作用:取消定義的宏 指令格式:#undef 標識符 運行結果: 注意:在《MISRA-C-2004工業標准的C規范》中要求不允許使用#undef,詳見《MISRA-C-2004工業標准的C規范》規則19.6。 ...
undef 是在后面取消以前定義的宏定義 該指令的形式為 undef 標識符 其中,標識符是一個宏名稱。如果標識符當前沒有被定義成一個宏名稱,那么就會忽略該指令。 一旦定義預處理器標識符,它將保持已定義狀態且在作用域內,直到程序結束或者使用 undef 指令取消定義。 ...
2017-11-26 13:18 0 1732 推薦指數:
#undef 作用:取消定義的宏 指令格式:#undef 標識符 運行結果: 注意:在《MISRA-C-2004工業標准的C規范》中要求不允許使用#undef,詳見《MISRA-C-2004工業標准的C規范》規則19.6。 ...
預處理命令 在接觸#if、#undef這類預處理指令前,大部分都都接觸過#define、#include等預處理命令,通俗來講預處理命令的作用就是在編譯和鏈接之前,對源文件進行一些文本方面的操作,比如文本替換、文件包含、刪除部分代碼等,這個過程叫做預處理(在編譯之前對源文件進行簡單加工 ...
#undef的語法 定義:#undef 標識符,用來將前面定義的宏標識符取消定義。 整理了如下幾種#undef的常見用法。 1. 防止宏定義沖突在一個程序塊中用完宏定義后,為防止后面標識符沖突需要取消其宏定義。 例如: 在一個程序段中使用完宏定義后立即將其取消,防止 ...
在Visual Studio2008中編寫如下代碼: 編譯器會對 cout << MODI + 1 << endl;這行語句報錯。 原因就是#undef起的作用: 當用完一個宏,比如MODI,不希望下面的代碼再用到這個MODI ...
注:##連接兩邊字符串。 ...
使用條件宏進行條件編譯 譬如,對於同一份代碼,我想編譯出兩個不同的版本,在其中一個版本中去掉某一部分功能, 這時可以通過條件宏判斷是否編譯,例: 如果不使用條件宏進行控制,想編譯兩個不同版本的程序,就需要保存兩份源代碼。 條件編譯的語法和if else語法類似 ...
Ragel是個有限狀態機編譯器,它將基於正則表達式的狀態機編譯成傳統語言(C,C++,D,Java,Ruby等)的解析器。 用Ragel可以很方便且很容易的寫出各種FSM,也經常用作語法檢測器。 Ragel State Machine Compiler 一個用C語言實現的例子 ...
宏定義是在程序編譯前的預處理階段,對所有使用到宏的地方進行替換; 今天看到代碼里面一大推的 #define與#undef的使用,卻不甚明白看了好一陣子才弄清楚是干什么的,其實很簡單。 定義: 同一類型的處理動作(很多簡單 ...