[英]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.