#define

#define A(x) T_##x     ##鏈接
#define B(x) #@x    #@單引號code

#define C(x) #x     #雙引號
咱們假設:x=1,則有:
A(1)------〉T_1    
B(1)------〉'1'
C(1)------〉"1"get

#define FOREACH_DAT_ID(GENERATE_DAT_ID) \
	GENERATE_DAT_ID(DAT_ID_START) \
	GENERATE_DAT_ID(DAT_ID_AUTO_DIFF) \
	GENERATE_DAT_ID(DAT_ID_CMR) \
	GENERATE_DAT_ID(DAT_ID_CMR2) \
	GENERATE_DAT_ID(DAT_ID_SCMR) \
	GENERATE_DAT_ID(DAT_ID_RTCM) \
	GENERATE_DAT_ID(DAT_ID_RTCMV3) \
	GENERATE_DAT_ID(DAT_ID_RTCMV32) \
	GENERATE_DAT_ID(DAT_ID_RTD) \
	GENERATE_DAT_ID(DAT_ID_RTCA) \
	GENERATE_DAT_ID(DAT_ID_NOVATELX)

#define GENERATE_ENUM(a)  a,

typedef enum
{
	FOREACH_DAT_ID(GENERATE_ENUM)
} DAT_ID;
typedef struct
{
	DAT_ID dat_id;
} CGI_TO_MNG_CMD_DATA__GET_GNSS_DATA;

int main()
{
	CGI_TO_MNG_CMD_DATA__GET_GNSS_DATA pstCgiGetGnssData;
	pstCgiGetGnssData.dat_id = DAT_ID_CMR;
	printf("id:%d\n", pstCgiGetGnssData.dat_id);
	system("pause");
}

其中#define GENERATE_ENUM(a)  a,   每當調用GENERATE_ENUM(a)表示a,     後面有個逗號。class

這樣在枚舉類型中能夠秀一下。 
 mail

相關文章
相關標籤/搜索