在c++中,巨集是非常常用的,本篇部落格粗略地對巨集的使用和常用技巧做一些歸納。
巨集的基礎用法:
#define maxinum 1000
這樣我們就將maxinum定義為1000(注意巨集不需要分號)
與此同時,正如之前介紹lamba的內容所說,我們在呼叫巨集時採取的是直接取代法,所以難免會出現問題
比如:
#define add(a,b) a+b
以上巨集在cadd(a+b)時會被翻譯為ca+b,顯然不合適。
條件編譯(有時候我們希望系統根據生產情況使用不同的巨集):
#ifdef
#ifdef dv22_aux_input
#define aux_mode 3
#else
#define auy_mode 3
#endif
//這一段是不是充滿了python的既視感?我也這麼覺得
我們不希望之前的巨集被現在的巨集覆蓋時,使用:
#ifndef
如果需要定義多行的巨集,那:
#define ma()do
while(0
)/
關鍵在於每一行最後的/
最後分享一些我個人覺得有用的巨集
#define foreach(a,b,k) for(int i=a;i
c語言再學習之巨集與函式
巨集概念 c 巨集定義將乙個 識別符號定義為乙個字串,源程式 中的該識別符號均以指定的字串來代替。巨集書寫形式 define 巨集名 參數列 巨集體 巨集與函式的區別 時間上考慮 1 巨集只佔編譯時間,函式呼叫則占用執行時間 分配單元,儲存現場,值傳遞,返回 每次執行都要載入,所以執行相對巨集會較慢...
C 的巨集和 C 的巨集
總結一下c和c 的巨集。大家經常使用的其實都是c中的巨集,但是c 都延續了下來,先回顧一下。define 定義巨集 undef 取消巨集 include 包含標頭檔案 ifdef 如果巨集已經定義,則返回真 ifndef 如果巨集沒有定義,則返回真 if 如果條件為真,則執行下面的 else 與 i...
C中常用的巨集
define 定義乙個預處理巨集 undef 取消巨集的定義 include 包含檔案命令 if 編譯預處理中的條件命令,相當於c語法中的if語句 ifdef 判斷某個巨集是否被定義,若已定義,執行隨後的語句 ifndef 與 ifdef相反,判斷某個巨集是否未被定義 elif 若 if,ifdef...