【发布时间】:2014-12-24 09:25:33
【问题描述】:
我的演员阵容代码上有这个警告:
取消引用类型双关指针会破坏严格别名规则 [-Wstrict-aliasing]
unsigned char buffer[64];
...
unsigned int value = *(unsigned int*)buffer;
如何解决这个警告?
感谢您的帮助!
【问题讨论】:
-
你明白警告告诉你什么吗?您需要先了解问题,然后才能真正解决它。有很多方法可以在解决真正问题的情况下使警告静音,而仅仅让警告静音是完全没有意义的。
-
重复是一道 C 题,这是一道 C++ 题。这很重要,因为对“重复”的建议修复之一是使用在 C++ 中不起作用的
union。 -
@MattMcNabb 好点。事实上,没有一个答案可以作为这里的答案。出于这个原因,我重新打开了这个。
-
啊,是的,类型双关语。不是语言也不是 gcc 最好的时刻。 Here's 一篇出色的文章,涵盖了所有的如果,但可能与您正在尝试做的事情相关联。祝你好运!
-
不知道代码应该做什么,很难帮助你。代码的行为将是特定于平台的,在不了解您的平台的情况下,我们无法知道它应该做什么。有办法做它正在做的任何事情,但我们不知道那是什么。