gcc warning: dereferencing type-punned pointer will break strict-aliasing rules

在高优化级别下,不同类型指针之间的强制类型转换可能会触发以下警告:

warning: dereferencing type-punned pointer will break strict-aliasing rules

因为在高优化级别下,gcc假定不同类型指针不会指向同一块内存,可能导致编译生成不符合原意的代码。

使用以下编译标志关闭在此类代码上的优化:

-fno-strict-aliasing