我有第三方代码要编译,下面是失败的代码片段:
typedef struct wqe_s {
...
uint8_t packet_data[96]
...
} wqe_t;
..
wqe_t *work = NULL;
..
wqe_t *w1 = *(wqe_t **)work->packet_data; // ERROR
错误:取消引用类型punned指针将破坏严格的别名
规则
它是用gcc-4.7(-Wall-Werror)编译的,我不需要调整编译器标志,最好是修复代码。
我希望能得到一些建议。谢谢!
最佳答案
这样地:
wqe_t *w1;
memcpy(&w1, work->packet_data, sizeof w1);
关于c - gcc4.7错误-取消引用类型化指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29106675/