char型变量左移8位赋值给int型变量的问题
unsignedinta;unsignedcharstr1,str2;a=(str1<<8)|(str2&0xff);已经验证过结果是str1变成了a的高字节,str2变...
unsigned int a; unsigned char str1,str2; a=(str1<<8)|(str2&0xff); 已经验证过结果是str1变成了a的高字节,str2变成了a的低字节。但是str1是char型的,为什么str1<<8不会变成0呢???
展开
2个回答
2013-07-27
展开全部
ANSI C 中的整型提升(char convert to int) 隐式执行的。还有像周生所说的那样,ARM编译器会把局部变量分配给内部寄存器,每个变量占一个32位的寄存器。希望对你有所帮助 qq 921834839
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询