預處理器是執行於編譯之前的一段程式,如#include預處理功能,當預處理器看到#include時,就會用指定的標頭檔案內容替換#include。預處理器的乙個作用就是可以保證標頭檔案被多次包含仍能正常工作:
標頭檔案class_a.h內容如下:
#ifndef class_a_h
#define class_a_h
#include
struct class_a{
std::string name;
int num;
#endif
如果沒有#ifndef和#endif指令,有2個原始檔同時包含了class_a.h這個標頭檔案,那麼string這個標頭檔案就會被2次包含進去,勢必會浪費資源,而用上面的內容,借助於預處理變數class_a_h可以有效防止重複包含。
C 預處理器
偶爾翻c 的教材,看到了一些以前自己不太關注的角落。參考教材 c 大學教程 harvey m.deitel 和paul james deitel著。預處理發生在編譯之前,包括把其他檔案包含到要編譯的檔案中 定義符號常量和巨集 程式 的條件編譯以及預處理指令的條件執行。對應的,預處理指令有 檔案包含命...
C 預處理器
預處理器是一些指令,指示編譯器在實際編譯之前所需完成的預處理。所有的預處理器指令都是以井號 開頭,只有空格字元可以出現在預處理指令之前。預處理指令不是 c 語句,所以它們不會以分號 結尾。我們已經看到,之前所有的例項中都有 include指令。這個巨集用於把頭檔案包含到原始檔中。c 還支援很多預處理...
C 預處理器
預處理器是一些指令,指示編譯器在實際編譯之前所需完成的預處理。所有的預處理器指令都是以井號 開頭,只有空格字元可以出現在預處理指令之前。預處理指令不是 c 語句,所以它們不會以分號 結尾。我們已經看到,之前所有的例項中都有 include指令。這個巨集用於把頭檔案包含到原始檔中。c 還支援很多預處理...