c - 分配给 uint8_t 的 uint32_t 行为总是一样的吗?

标签 c

uint32_t var32;
uint8_t var8;
var32 = 0xFEEDABCD;
var8 = 0;
var8 = var32;

上面的代码是否总是(意味着依赖于平台,例如 Windows 与 Linux 等)具有以下值:

var32 = 0xFEEDABCD

var8 = 0xCD

最佳答案

是的,会的。无符号整数溢出由标准明确定义,需要遵循模-2^n 语义。

关于c - 分配给 uint8_t 的 uint32_t 行为总是一样的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108275/

相关文章:

python - 如何在C中使用openssl解密密文?

c - 在 libev 中,为什么默认循环在堆栈上?

c - 错误消息 "expected ‘float ***’ 但参数的类型为 ‘float *’

c - 测试 C 中的指针函数

c - pthread_join 中的段错误

C - 程序只执行 if else 语句的一部分

使用共享库时 C++ 代码未定义对函数的引用

c - if 语句无条件

c - 未使用的变量未在映射文件中分配地址

feof() 和 fgetc() 的 C 段错误