1. 程式人生 > >C++預處理器

C++預處理器

文件中 文件內容 line 頭文件保護符 text 編譯 std 一段 gpo

預處理器是運行於編譯之前的一段程序,如#include預處理功能,當預處理器看到#include時,就會用指定的頭文件內容替換#include。預處理器可以保證頭文件被多次包含仍能正常工作:

頭文件class_a.h內容如下:

#ifndef CLASS_A_H  

#define CLASS_A_H

#include<string>

struct CLASS_A{

std::string name;

int num;

};

#endif

如果沒有#ifndef和#endif指令,有2個源文件同時包含了class_a.h這個頭文件,那麽string這個頭文件就會被2次包含進去,勢必會浪費資源,而用上面的內容,借助於預處理變量CLASS_A_H可以有效防止重復包含。

  • 預處理變量一般按照頭文件中類的名字來構建
  • 預處理變量名一般全部大寫,避免與程序中的變量沖突
  • 應該習慣性的對頭文件做上述處理——頭文件保護符

C++預處理器