巨集定義中的空格
另外還有乙個問題需要引起注意,看下面例子:
#define sum (x) (x)+(x)
複製**
這還是定義的巨集函式sum(x)嗎?顯然不是。編譯器認為這是定義了乙個巨集:sum,其代表的是(x) (x)+(x)。
為什麼會這樣呢?其關鍵問題還是在於sum 後面的這個空格。所以在定義巨集的時候一定要注意什麼時候該用空格,什麼時候不該用空格。這個空格僅僅在定義的時候有效,在使用這個巨集函式的時候,空格會被編譯器忽略掉。也就是說,上一節定義好的巨集函式sum(x)在使用的時候在sum 和(x)之間留有空格是沒問題的。比如:sum(3)和sum (3)的意思是一樣的。
define巨集定義中的 ,
1 stringizing 字串化操作符 其作用是 將巨集定義中的傳入引數名轉換成用一對雙引號括起來引數名字串。其只能用於有傳入引數的巨集定義中,且必須置於巨集定義體中的引數名前。如 define example instr printf the input string is t s n inst...
define巨集定義中的 , , ,
巨集只能放在一行,分多行時應用在行尾用 需要是最後乙個字元,最後一行不寫 c c 巨集命令的神奇用法。先看下面三條語句 cpp view plain copy define conn x,y x y define tochar x x define tostring x x 1 連線操作符 x y表...
C C 中巨集定義 define
define是c語言中提供的巨集定義命令,其主要目的是為程式設計師在程式設計時提供一定的方便,並能在一定程度上提高程式的執行效率,但學生在學習時往往不能 理解該命令的本質,總是在此處產生一些困惑,在程式設計時誤用該命令,使得程式的執行與預期的目的不一致,或者在讀別人寫的程式時,把執行結果理解錯誤,這...