乙個巨集定義的用法

2021-06-28 09:08:26 字數 1098 閱讀 9068

巨集定義就是簡單的替換,之前沒見過帶符號的替換,看到這個有點懵了,記錄如下。這裡用 n, 代替 fninfo(n,l),用的很巧妙。

#define fninfo(n,l) n,

measvalue (*(measfntbl))() = ;

/*以下為names.h中內容:

fninfo( dominmaxmidhilo, min  )

fninfo( dominmaxmidhilo, max )

fninfo( dominmaxmidhilo, peaktopeak )

fninfo( dominmaxmidhilo, mid )

fninfo( dominmaxmidhilo, high )

fninfo( dominmaxmidhilo, low )

fninfo( amplitude,

amplitude )

fninfo( mean,

mean )

其中#define min 0

#define max 1

#define peaktopeak 2

#define mid 3

#define high 4

#define low 5

#define amplitude 6

利用巨集定義替換標頭檔案中內容:

fninfo( dominmaxmidhilo, min  )  替換成 dominmaxmidhilo,

fninfo( dominmaxmidhilo, max )          替換成dominmaxmidhilo,

fninfo( dominmaxmidhilo, peaktopeak )   替換成dominmaxmidhilo,

......

上面那個函式指標陣列就變成了:

measvalue (*(measfntbl))() = ;

它是這樣使用的:

typedef double measvalue;

measvalue value = (measvalue) (*measfntbl[meas])(pwfm, pqual); // meas就是乙個int型 

*/

define 定義乙個預處理巨集(用法)

1 define 識別符號 字元 字元 常數 標識 表示式 就是將識別符號替換成字元內容 define zf tt 0x1f 將包含有zf tt 全部替換成 0x1f2 define 巨集名 替換內容1,2,替換內容 45 替換內容2 2 define zf tt i,j i j 5 i 5 i 1...

乙個複雜巨集定義的解讀

我們不提倡在寫 的時候出現太多複雜的巨集定義,巨集定義雖然可以簡化 量,但是讀起來非常費勁!下面來看乙個例子 把乙個buff中的資料拷貝到乙個指定的陣列中。由於種種原因,我們用巨集定義來實現這些負責的轉化。如下 include stdafx.h include string.h typedef un...

乙個巨集定義引發的問題

問題1 對與buffer巨集定義的理解 一些得到的基本結論 int型資料占有乙個字的空間,char型資料占有乙個位元組的空間,並且char資料型別的定義是為ascii字元表量身定製的 對與buffer的理解 define buffer char int far 0x200 首先,複習對與基本巨集定義...