打印

Error: this declaration has no storage class or type specifier

[复制链接]
9834|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
insect2006|  楼主 | 2012-11-13 10:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的源代码非常简单,就是一个宏函数:

#define  NAND_CFG_WR_BYTE(x); { \
  x=((x>>1)&0x55)|((x<<1)&0xaa); \
  GPIOE->BSRR=(~((((U32)(x))<<16)|0xFF00FFFF))|x; \
}

加了中间的一行: x=((x>>1)&0x55)|((x<<1)&0xaa); \
编译的时候就会提示:Error: this declaration has no storage class or type specifier
按照字面意思理解:这个声明没有存储类或类型说明符
这个解释让我完全想不通
沙发
IJK| | 2012-11-13 14:50 | 只看该作者
我用IAR EWARM 试了一下,这个宏定义没有问题。

使用特权

评论回复
板凳
insect2006|  楼主 | 2012-11-13 16:34 | 只看该作者
2# IJK

我的是MDK-ARM 4.12

使用特权

评论回复
地板
伐多2011| | 2012-11-14 10:49 | 只看该作者
不能这样写吧,你宏定义已展开就是x=((x>>1)&0x55)|((x<<1)&0xaa); ,x是啥玩意?你宏定义((x>>1)&0x55)|((x<<1)&0xaa); ,这程序中定义一个变量x,x =  NAND_CFG_WR_BYTE(X); ,或许可以解决

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

146

帖子

1

粉丝