#define HTON_I32(x) htonl(x)
inline float __HTON_F32(float x)
{
int i = HTON_I32(*((int *)(&x)));
return (*((float *)(&i)));
}
Làm thế nào để giải quyết cảnh báo dereferencing type-punned pointer will break strict-aliasing rules
trong đoạn code trênLàm thế nào để giải quyết cảnh báo: dereferencing type-punned con trỏ sẽ phá vỡ quy tắc nghiêm ngặt-aliasing
Bạn có thể biên dịch với -fno-nghiêm ngặt cờ đánh dấu trên. Điều này sẽ loại bỏ cảnh báo về các vấn đề bí danh nghiêm ngặt –
@TonyTheLion: điều đó không giải quyết được sự cố, nó ẩn nó và ẩn các vấn đề tiềm ẩn khác trong mã. Không phải là một ý tưởng tốt. – Mat
@ Không, điều này giải quyết được vấn đề với chi phí tối ưu hóa. –