牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2016-03-11 投稿人: 浏览次数:4518
在定义读写字节宏时出现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)
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。