【发布时间】:2017-06-24 09:36:50
【问题描述】:
gcc (6.3.1 20170109) 编译以下程序时
#include <stdio.h>
int main(int argc, const char *argv[]) {
unsigned char x[] = {0x66, 0x19};
printf("%i\n", ((short *)((char *)&x[0]))[0]);
return 0;
}
生成警告:
pun.c:在函数“main”中: pun.c:5:5:警告:取消引用类型双关指针将破坏严格别名规则 [-Wstrict-aliasing]
在使用char 指针时不应该允许类型别名吗?
【问题讨论】:
标签: gcc strict-aliasing