打印
[STM32F1]

请教一下赋值语句中的类型转换问题。。

[复制链接]
1598|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xwuzi|  楼主 | 2014-9-20 16:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问一下
unsigned char u8;
u8 = 0x3021;
执行的结果是啥?
舍去高位还是低位?
沙发
mmuuss586| | 2014-9-20 16:30 | 只看该作者
等于低位;

使用特权

评论回复
板凳
diweo| | 2014-9-20 16:33 | 只看该作者
数值上是等于低位。不过编译器应该都能检测出来并给出warning.

使用特权

评论回复
地板
xwuzi|  楼主 | 2014-9-20 16:47 | 只看该作者
mmuuss586 发表于 2014-9-20 16:30
等于低位;

谢谢!

使用特权

评论回复
5
xwuzi|  楼主 | 2014-9-20 16:48 | 只看该作者
diweo 发表于 2014-9-20 16:33
数值上是等于低位。不过编译器应该都能检测出来并给出warning.

谢谢!
编译通过了,没有警告诶。
我用的是MDK

使用特权

评论回复
6
mmuuss586| | 2014-9-20 18:07 | 只看该作者
xwuzi 发表于 2014-9-20 16:48
谢谢!
编译通过了,没有警告诶。
我用的是MDK

没有警告,正常,编译器会帮你转换的;

使用特权

评论回复
7
命中注定0818| | 2014-9-20 18:33 | 只看该作者
细节很重要,楼主fighting

使用特权

评论回复
8
houjiajian| | 2014-9-20 20:57 | 只看该作者
个人看法:
1,将const类型(0x3021)赋值给unsigned char 类型不妥。
2,舍去地位或是高位要看内存中是大端还是小段模式。

使用特权

评论回复
9
李富贵| | 2014-9-20 23:03 | 只看该作者
houjiajian 发表于 2014-9-20 20:57
个人看法:
1,将const类型(0x3021)赋值给unsigned char 类型不妥。
2,舍去地位或是高位要看内存中是大 ...

你的2纯粹是胡说八道,常数的大小端和处理器大小端是对应一致的,所以必然是舍掉高位保留低位。

使用特权

评论回复
10
bear1| | 2014-9-23 15:10 | 只看该作者
李富贵 发表于 2014-9-20 23:03
你的2纯粹是胡说八道,常数的大小端和处理器大小端是对应一致的,所以必然是舍掉高位保留低位。 ...

写个程序实际跑一看,谁对谁错?

使用特权

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

本版积分规则

个人签名:人生无非是笑笑人家,再被人家笑笑~

43

主题

493

帖子

6

粉丝