jianhong_wu 发表于 2016-9-18 15:10:39

单字节变量赋值给多字节变量时候,多字节变量其余高位会被0覆盖吗?已解答。

★坚鸿-深圳:

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

慕枫-无锡:
0xab。


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

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

★坚鸿-深圳:
具体记不清了,不太敢确定,好像曾经遇到过,有可能不同的编译器会不一样。
所以我以前是用这种方法的:
    b=0;
    b=t;
这种方法感觉太过于谨慎,缺乏老工程师的风范。所以今后我打算用以下这种:
c=(unsigned long)t;
我也推荐大家用这种强制转换的方法。

页: [1]
查看完整版本: 单字节变量赋值给多字节变量时候,多字节变量其余高位会被0覆盖吗?已解答。