關於C語言巨集定義的技巧 和

2022-05-21 17:36:09 字數 635 閱讀 9055

'#'和'##'是兩個預處理運算子,只能在預處理的過程中使用。在帶引數的巨集定義中,

帶引數的巨集定義也是可以使用可變引數的;

#define showlist(...) printf(# __va_args__)

其中...表示使用可變引數,__va_args__在於處理中被實際的引數集所替換。

#include#define str(s) # s                  //str 就是定義的巨集 ,# 運算子會將 s 變為字串的形式

int main(void)

#include#define together(x,y) x ## y

int main(void)

#include#define showlist(...) printf(# __va_args__)

int main(void)

#include#define printf(format,...) printf(# format,## __va_args__)

int main(void)

C語言巨集定義技巧

1,防止乙個標頭檔案被重複包含 ifndef comdef h define comdef h 標頭檔案內容 endif 2,重新定義一些型別,防止由於各種平台和編譯器的不同,而產生的型別位元組數差異,方便移 植。typedef unsigned char boolean boolean value...

C語言 C語言之列舉定義和巨集定義的技巧1

例舉如下 typedef enum memp t 等同於 typedef enum memp t 解析 1 define mempool name,num,size,desc memp name,將mempool name,num,size,desc 代替為memp name 例如 memp std...

C語言巨集定義和巨集定義函式

c語言巨集定義和巨集定義函式 巨集定義可以幫助我們防止出錯,提高 的可移植性和可讀性等。在軟體開發過程中,經常有一些常用或者通用的功能或者 段,這些功能既可以寫成函式,也可以封裝成為巨集定義。那麼究竟是用函式好,還是巨集定義好?這就要求我們對二者進行合理的取捨。我們來看乙個例子,比較兩個數或者表示式...