預處理就是對原始檔進行編譯前,先對預處理部分進行處理,然後對處理後的**進行編譯。c++提供了豐富的預處理指令,主要包括如下幾種:#define、#error、#if、#else、#elif、#endif、#ifdef、#ifndef、#undef、#line和#pragma。
每個預處理指令均帶有符號『#』。簡單來說,上面的這些預處理命令可以劃分為檔案包含、條件編譯、布局控制和巨集替換4個大類。
(1)檔案包含(#include):是一種最為常見的預處理,主要是作為檔案的引用組合源程式正文。
(2)條件編譯(#if、#else、#elif、#endif、#ifdef、#ifndef、#undef等):主要是進行編譯時進行有選擇的挑選,注釋掉一些指定的**,以達到版本控制、防止對檔案重複包含的功能。
(3)布局控制(#progma):主要功能是為編譯程式提供非常規的控制流資訊。
(4)巨集替換(#define):其可以定義符號常量、函式功能、重新命名、字串的拼接等各種功能。
c 預處理和預處理命令
預處理發生在編譯之前,預處理輸出的是乙個單一的檔案,這個檔案被送到編譯器,進行編譯。每條預處理命令都控制預處理器的行為。每條預處理命令佔據一行,有以下的格式 character 預處理命令 one of define,undef,include,if,ifdef,ifndef,else,elif,e...
C 預處理命令
c 提供的預處理功能 巨集定義 檔案包含和條件編譯 分別由巨集定義命令 檔案包含命令和條件編譯命令三種預處理命令來實現。預處理命令 格 式 預處理命令 末尾不加分號 作用域 從定義點到程式結束 說 明 預處理命令獨佔一行,位置任意 巨集定義命令 格 式 define 巨集名 形參 巨集體 undef...
C 預處理命令
和 操作符是和 define巨集使用的.使用 使在 後的首個引數返回為乙個帶引號的字串.例如,命令 define to string s s 將會使編譯器把以下命令 cout to string hello world endl 理解為 cout hello world endl 使用 鏈結 前後的...