巨集定義就是簡單的替換,之前沒見過帶符號的替換,看到這個有點懵了,記錄如下。這裡用 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 首先,複習對與基本巨集定義...