想起个C数据类型的疑问

[复制链接]
2386|3
 楼主| 箫笑 发表于 2009-9-10 11:35 | 显示全部楼层 |阅读模式
本帖最后由 箫笑 于 2009-9-10 16:04 编辑

大概是这样的:
unsigned char a = 20;
unsigned char b = 30;
unsigned int c;

c = a * b;

看到书上说得不到正确的答案,但是我用DEV C++试了,没有问题,隐式转换是跟编译器有关的吗?

我可以解释得不到正确答案的原因,但是不能解释结果正确的原因。
强制类型转换要耗费我N多字节,而我的Flash就剩下最后这性命攸关的几个字节,另有一种写法:
c = a;
c = c * b;
这比强制类型转换要耗费更多字节,
所以,我能否冒这个险......
djjyi 发表于 2009-9-10 15:21 | 显示全部楼层
可以啊    怎么得不得正确的答案?
zydlyq 发表于 2009-9-10 16:02 | 显示全部楼层
同意和编译器有关
 楼主| 箫笑 发表于 2009-9-10 16:02 | 显示全部楼层
我可以解释得不到正确答案的原因,但是不能解释结果正确的原因。
强制类型转换要耗费我N多字节,而我的Flash就剩下最后这性命攸关的几个字节,另有一种写法:
c = a;
c = c * b;
这比强制类型转换要耗费更多字节,
所以,我能否冒这个险......
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

368

帖子

0

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