enum{STATE_0, STATE_1, STATE_2, STATE_N, NUM_STATES};
typedef void (*p_func_t)(void);
p_func_t jumptable[NUM_STATES] = {
[STATE_1] = 0,
[STATE_0] = 0,
[STATE_2] = 0,
[STATE_N] = OSInit
};
上述代码在c98标准的编译器是编译失败的。但是在c99支持的编译器可以的。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#define FFF (5*3335)UL
C98不支持
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
typedef enum _GLCD_Status_t {
GLCD_OK = 0, GLCD_ID_ERROR, GLCD_UNSUPPORTED, GLCD_ERROR
} GLCD_Status_t;
GLCD_Status_t GLCD_PowerUpInit (pInt8U pInitData)
{
return(GLCD_OK);
}
这样的枚举使用c98 和c99是 支持的