tuzihog的笔记 https://passport2.21ic.com/?584869 [收藏] [复制] [RSS]

日志

长数据赋值给短变量

热度 1已有 801 次阅读2014-2-19 21:11 |个人分类:2014-02|系统分类:ARM

测试环境: XP  VC6.0
测试程序
#include "stdio.h"
void main(void)
{
        short int i;
        long L = 6324232L;
        i = L;
        printf("i=%d,L=%ld\n",i,L);
        while(1);
}
测试结果:i=-32760,L= 6324232
变量在内存中的表示:
L        0x00608008     0000 0000 0110 0000 1000 0000 0000 1000
i        0x8008         1000 0000 0000 1000
结论:
长数据赋值给短变量时仅仅将长数据的低字节位送到短变量中,这样有可能导致数据变化。

1

路过

鸡蛋

鲜花

握手

雷人

刚表态过的朋友 (1 人)

评论 (0 个评论)