单字节变量赋值给多字节变量时候,多字节变量其余高位会被0覆盖吗?已解答。
★坚鸿-深圳:请问,a,b,c,d最后各自是什么?结果是多少?
慕枫-无锡:
0xab。
★坚鸿-深圳:
完全正确。全部都是0xab。大家好好品味这道题,实战中很有用。
我就是刚才突然碰到这个疑惑,然后就上51单片机的板子上做实验试试看。
小田田-深圳:
有出现过0x123456ab这种情况吗?
★坚鸿-深圳:
具体记不清了,不太敢确定,好像曾经遇到过,有可能不同的编译器会不一样。
所以我以前是用这种方法的:
b=0;
b=t;
这种方法感觉太过于谨慎,缺乏老工程师的风范。所以今后我打算用以下这种:
c=(unsigned long)t;
我也推荐大家用这种强制转换的方法。
页:
[1]