2010年5月26日星期三

C define (macro)操作 小記

marco 一個特殊的用法 ##


#define A_TYPE(idx) idx##_TYPE
#define B_TYPE(idx) TYPE_##idx
#define C_TYPE(idx) TY_##idx##_PE


A_TYPE(CO) 代表 CO_TYPE
B_TYPE(CO) 代表 TYPE_CO
C_TYPE(CO) 代表 TY_CO_PE


主要是來創建特定名稱的變數名稱以及函式名稱
下面為實際使用的片段程式碼
/* first marco */


#define _VARI_(idx)    _##idx##_VARI
#define _FUNC_(idx)    _##idx##_FUNC


/* second marco */


#define VARI VARI(DO)
#define FUNC FUNC(DO)


/* use second marco DO_VAR and DO_FUNC */
int VARI = 0;
void FUNC(void) {return;}

0 意見: