在定义读写字节宏时出现Error[Pe029]: expected an expression。
我的定义如下:
#define READ_RAM(p, type) (*(((type)*)(p)))//错误 #define READ_RAM8(p) READ_RAM(p, u8)
用法:
u8 test = 0; u8 *p = &test; u8 value = READ_RAM8(p);//Error[Pe029]: expected an expression后来逐步推敲,验证。终于搞清楚
u8 value = *((u8 *)(p));//OK u8 value = *(((u8) *)(p));//error
所以,正确写法是:
#define READ_RAM(p, type) (*((type *)(p)))//错误
#define READ_RAM8(p) READ_RAM(p, u8)