#define使用问题

[复制链接]
 楼主| weilj123 发表于 2010-3-18 12:01 | 显示全部楼层 |阅读模式
我在头文件里有如下定义#define  PC8255   XBYTE[0x0002];
在函数中我如下应用:PC8255 = PC8255 | 0x01;
发现错误,不知道是否应用有问题,使用环境为:KEIL
zq1987731 发表于 2010-3-18 12:38 | 显示全部楼层
#define  PC8255   XBYTE[0x0002];
替换出来的是:
XBYTE[0x0002]; = XBYTE[0x0002]; | 0x01;
 楼主| weilj123 发表于 2010-3-18 12:51 | 显示全部楼层
这样是对的,但是不太好看,记得在哪见过,可以这样使用的吧PC8255 = PC8255 | 0x01;
HWM 发表于 2010-3-18 13:03 | 显示全部楼层
把“#define  PC8255   XBYTE[0x0002];”中的分号“;”去掉。你这样经预处理后变成了如下这副模样自然有错。

     XBYTE[0x0002]; = XBYTE[0x0002]; | 0x01;

另,整个说明应该是:

xdata char XBYTE[N]; // N 为 常量
#define  PC8255   XBYTE[0x0002]
 楼主| weilj123 发表于 2010-3-18 17:12 | 显示全部楼层
HWM,谢谢了,是这个问题,向您学习。
后学 发表于 2010-3-19 08:21 | 显示全部楼层
1、分号;
2、替换的部分最好括号;
afei9527 发表于 2010-3-21 20:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

126

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部