Q:
在高优化级别下,不同类型指针之间的强制类型转换可能会触发以下警告:
warning: dereferencing type-punned pointer will break strict-aliasing rules
A:
在高优化级别下,gcc假定不同类型指针不会指向同一片内存,以加强优化,从而可能导致编译出不符合原意的代码。
使用-fno-strict-aliasing,关闭在此类代码上的优化。
Q:
在高优化级别下,不同类型指针之间的强制类型转换可能会触发以下警告:
warning: dereferencing type-punned pointer will break strict-aliasing rules
A:
在高优化级别下,gcc假定不同类型指针不会指向同一片内存,以加强优化,从而可能导致编译出不符合原意的代码。
使用-fno-strict-aliasing,关闭在此类代码上的优化。