繁体   English   中英

数据类型截断

[英]Data Type Truncation

我有一个基本的C问题。

假设我已经声明并初始化了一个标准的16位无符号整数

uint16_t var1 = 0x1234;

然后假设我声明了一个8位无符号整数:

uint8_t var2;

如果我要分配,

var2 = var1;

这是有效的声明吗? 并会简单地截断更高位以产生如下结果:

var2 == 0x34

评估为真?

我想你的意思是:

uint16_t var1 = 0x1234;
uint8_t var2;
var2 = var1;

是的,这将截断var1以使其适合var1的数据类型,因此var2等于0x34。

是。 编译器会在内部将其解释为

var2 = (uint8_t)var1;

这将导致var2的值为0x34。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM