gpt4 book ai didi

c - 为什么在使用 gcc C 将 uint32 转换为 uint8 时没有警告

转载 作者:太空狗 更新时间:2023-10-29 17:09:58 25 4
gpt4 key购买 nike

使用-Wconversion 编译,

uint32_val = 0x00000C00;
uint_8_val = ((uint32_val >> 8) & 0x000000FF);

不发出警告。

我应该使用什么编译器标志来获得警告?

最佳答案

没有警告,因为表达式:

((uint32_val >> 8) & 0x000000FF)

始终可转换为适合字节的类型。您的 uint32_val 未被强制转换,但参与了计算。编译器可以对此进行优化,在这种情况下很明显,使用 000000ff 进行按位与运算后的结果将始终符合提供的 l-value 类型,因此没有警告。

关于c - 为什么在使用 gcc C 将 uint32 转换为 uint8 时没有警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20355805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com