我們知道,sizeof是在編譯期就完成了計算,在執行時已經是乙個常數值了。那sizeof能用在類似於#if這樣的指令中嗎?
答案一般是不行。
關於預編譯條件msdn明確寫著: the expression cannot use sizeof or a type-cast operator.
其實,像#include,#if,#define等等這樣的是在預處理過程就完成了包含和替換,所以他們是預處理指令。而此時還沒有到編譯期,還沒有型別名稱分析,sizeof也就不能用。
預處理指令
預處理指令是我們寫在程式 中的給預處理器 preprocessor 的 命令,而不是程式本身的語句。預處理器在我們編譯乙個c 程式時由編譯器自動執行,它負責控制對程式 的第一次驗證和消化。所有這些指令必須寫在單獨的一行中,它們不需要加結尾的分號 在這個教程的開頭我們已經提到了一種預處理指令 defi...
預處理指令
1.人們常常稱機器語言為目標 object code 2.預處理命令 preprocessor directives 三種預處理包括 巨集定義 檔案包含 條件編譯。在對源程式編譯之前,會對程式中的所有預處理指令進行處理。預處理就是在進行編譯的第一遍詞法掃瞄和語法分析之前所作的工作。說白了,就是對原始...
預處理指令
普通 define 巨集名 字串 define my int int define max 10000 帶引數 define 巨集名 形參 字串 define add x,y x y 在大規模的開發過程中,特別是跨平台和系統的軟體裡,條件編譯很重要。include using namespace s...