#define EC_WRITE_U16(DATA, VAL) \
do { \
if( (uint16_t)(DATA) % 2 ==0 ) \
{ \
*((uint16_t *) (DATA)) = cpu_to_le16((uint16_t) (VAL)); \
} \
else { \
* ((uint8_t*)(DATA)) = ((uint8_t)(VAL)); \
}\
} while (0)
如上所示宏定义,else里面的内容报错,无论是写什么都不行。
请问如何解决呢?