|
请教楼主一个c语言enum方面的问题。
我现在在用mdk编译环境,由于程序结构的要求,enum必须为两个字节。
我现在能想到的办法是再每个type enum结构体的最后定义个16bit的变量,这样编译器会自动将enum编译为2个字节。
我使用到的type enum比较多,每个都加很麻烦。
楼主有没有好的实现type enum 2字节的方法,或者退而求其次,使用一些技巧,
让每个type enum最后自己增加一个16bit变量。
下面是我现在的实现方式:
- #define FORCE_ENUM_SIZE (0xFFFF)
- typedef enum tagSPEED_CONTROL_SOURCE
- {
- SPEED_PANEL_SRC = 0, /*!< Speed given by the panel */
- SPEED_AI_CTRL = 1, /*!< Speed given by the analog input */
- SPEED_COM_CTRL = 2, /*!< Speed given by the modbus protocol */
- SPEED_CAN_CTRL = 3, /*!< Speed given by the CAN(private protocol) */
- ENUM_FORMAT_FILL = FORCE_ENUM_SIZE
- } SPEED_CONTROL_SOURCE_T;
复制代码 |
|