預處理命令

2021-10-10 14:05:57 字數 822 閱讀 4742

不帶引數的巨集定義就是用乙個指定的識別符號來代表乙個字串。其一般形式為:#define 識別符號 字串其中#表示這是一條預處理命令,define為巨集定義命令;「識別符號」就是巨集名;「字串」可以是常熟,表示式,格式字串等。例:#define pi 3.1415926 「它的作用是用指定識別符號代替常量3.1415926」。我們把在預處理時將巨集名替換成字串的過程稱為「巨集展開」。

1.1.1注意事項

(1)為了與變數相區別,巨集名習慣上用大寫字母表示,但也允許使用小寫字母。

(2)巨集定義只是用巨集名代替乙個字串,也就是只作簡單的替換,不做正確性檢查。

(3)巨集定義必須寫在函式之外,預設其作用域為巨集定義命令起到源程式結束。

(4)巨集定義允許巢狀,在定義的的字串中可以使用已經定義的巨集名。在巨集展開時,由預處理程式層層代換。

(5)巨集定義與變數定義的含義不同,巨集定義不分配記憶體,變數定義分配記憶體。千萬不要把巨集名當作變數名使用。

1…1.2參考**帶引數的巨集定義一般形式為:#define 巨集名(參數列) 字串

在巨集定義中的引數稱為形式引數,在巨集呼叫中的引數稱為實際引數。帶引數的巨集定義不是進行簡單的字串替換,還要進行引數替換,即用實參去替換形參。帶參巨集呼叫的一般形式為:巨集名(實參表);

參考**

撤銷巨集定義命令

#undef 識別符號//由於程式中撤銷了巨集定義,因此,pi只在main函式中有效,在後面的其他函式中無效,當其他函式中輸出pi的值時系統提示錯誤。若無「#undef pi」,則pi在main函式、function函式中都有效。

預處理命令

和 操作符是和 define 巨集使用的.使用 使在 後的首個引數返回為乙個帶引號的字串.例如,命令 define to string s s將會使編譯器把以下命令 cout to string hello world endl 理解為 cout hello world endl 使用 鏈結 前後的...

預處理命令

我們可以在c源程式中插入傳給編譯程式的各中指令,這些指令被稱為預處理器指令,它們擴充了程式設計的環境。現把常用的預處理命令總結如下 1.預處理程式 按照ansi標準的定義,預處理程式應該處理以下指令 if ifdef ifndef else elif endif define undef line ...

預處理命令

ansi c標準規定可以在c源程式中加入一些 預處理命令 來改進程式設計環境,提高程式設計效率。這些預處理指令都是由ansi c統一規定的,但是它並不是c語言本身的組成部分,不能直接對其進行編譯。c語言和其它高階程式語言的乙個重要區別就是可以使用預處理指令和它的預處理功能。預處理是指由預處理程式負責...