独闷闷网

标题: 单字节变量赋值给多字节变量时候,多字节变量其余高位会被0覆盖吗?已解答。 [打印本页]

作者: jianhong_wu    时间: 2016-9-18 15:10
标题: 单字节变量赋值给多字节变量时候,多字节变量其余高位会被0覆盖吗?已解答。
★坚鸿-深圳:

请问,a,b,c,d最后各自是什么?结果是多少?

慕枫-无锡:
0xab。


★坚鸿-深圳:
完全正确。全部都是0xab。大家好好品味这道题,实战中很有用。
我就是刚才突然碰到这个疑惑,然后就上51单片机的板子上做实验试试看。

小田田-深圳:
有出现过0x123456ab这种情况吗?

★坚鸿-深圳:
具体记不清了,不太敢确定,好像曾经遇到过,有可能不同的编译器会不一样。
所以我以前是用这种方法的:
  1.     b=0;
  2.     b=t;  
复制代码

这种方法感觉太过于谨慎,缺乏老工程师的风范。所以今后我打算用以下这种:
  1. c=(unsigned long)t;
复制代码

我也推荐大家用这种强制转换的方法。






欢迎光临 独闷闷网 (http://dumenmen.com/) Powered by Discuz! X3.2