宏定义中Error[Pe029]: expected an expression

来源:互联网 发布:c语言md5加密代码 编辑:程序博客网 时间:2024/05/17 19:19
在定义读写字节宏时出现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)
0 0
原创粉丝点击