預處理器是再變異之前做的一些工作
include 包含乙個原始檔**
常見的有#include
就是從系統庫中獲取stdio.h,並新增到當前文字中。而#include "header.h"
則是告訴預編譯器(cpp)從當前目錄中新增header.**件到當前文字中
defind定義巨集
巨集的意思就類似乙個誰都知道的常量如
#define color "blue"
還有取消巨集定義undef
預定義巨集
包括一些日期、當前目錄等,不能修改
預處理器運算子
引數化的巨集
標頭檔案包含了一些巨集定義和c函式宣告(如printf())
引用標頭檔案相當於複製標頭檔案的內容,但不會直接複製,因為這樣很容易出錯,特別是在引用多個檔案的時候
標頭檔案包括系統檔案和程式設計師寫的標頭檔案,這兩個的引用方式不一樣
標頭檔案引用經過預編譯器(cpp)處理後,得到的文字就是引用的標頭檔案和原本的檔案的並集
相同的標頭檔案不能被引用兩次,這樣會產生錯誤,可以採用條件編譯語句來避免即包裝器#ifndef
有條件引用
是為了應對根據不同的情況引用不同的檔案,特別是選擇引用多個檔案的時候,這樣是很不妥當的,可以通過預編譯器來巨集定義標頭檔案的名稱,然後引用相應的標頭檔案,這就是有條件引用。
即使用巨集來代替#include 後面的頭檔名
標頭檔案 預處理器 命名空間
1.標頭檔案用於宣告而不是用於定義 extern int ival 10 初始化了,為定義,不適合放在標頭檔案中 double dval 沒有extern,是定義,不適合放在標頭檔案中關於標頭檔案不應該含有定義這一規則,有三個例外 標頭檔案可以定義類 值在編譯時就已知道的const物件和inline...
C 預處理器和iostream檔案
使用 如果程式要使用c 輸入或輸出工具 cout,cin 要引入標頭檔案iostream和使用命名空間std,即在程式開頭寫 include using namespace std 當然也可以直接使用 include 代替這兩句。原因 1 這涉及到程式與外部世界之間的通訊。iostream中的io指...
C 預處理器
偶爾翻c 的教材,看到了一些以前自己不太關注的角落。參考教材 c 大學教程 harvey m.deitel 和paul james deitel著。預處理發生在編譯之前,包括把其他檔案包含到要編譯的檔案中 定義符號常量和巨集 程式 的條件編譯以及預處理指令的條件執行。對應的,預處理指令有 檔案包含命...