首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

长数据赋值给短变量

长数据赋值给短变量

测试环境: 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

结论:
长数据赋值给短变量时仅仅将长数据的低字节位送到短变量中,这样有可能导致数据变化。
返回列表