gpt4 book ai didi

C++ 生成警告 : dereferencing type-punned pointer will break strict-aliasing rules

转载 作者:行者123 更新时间:2023-11-30 03:58:03 26 4
gpt4 key购买 nike

我的 cast 行代码中有此警告:

dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict- aliasing]

unsigned char buffer[64];
...
unsigned int value = *(unsigned int*)buffer;

如何解决这个警告?

感谢您的帮助!

最佳答案

此代码的作用取决于平台的字节序、对齐规则、整数大小和其他因素。仅仅通过观察是无法知道它的作用的。但您可能想要这样的东西:

unsigned int value = buffer[0];
value = (value << 8) | buffer[1];
value = (value << 8) | buffer[2];
value = (value << 8) | buffer[3];

关于C++ 生成警告 : dereferencing type-punned pointer will break strict-aliasing rules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27634529/

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