Я пытаюсь исправить два предупреждения при компиляции конкретной программы с помощью GCC. Предупреждения:
предупреждение: разыменованный тип правила строгого сглаживания [-Wstrict-aliasing]
и два виновника:
unsigned int received_size = ntohl (*((unsigned int*)dcc->incoming_buf));
и
*((unsigned int*)dcc->outgoing_buf) = htonl (dcc->file_confirm_offset);
incoming_buf и outgoing_buf определяются следующим образом:
char incoming_buf[LIBIRC_DCC_BUFFER_SIZE];
char outgoing_buf[LIBIRC_DCC_BUFFER_SIZE];
Это кажется тонко отличным от других примеров этого предупреждения, которое я рассматривал. Я предпочел бы исправить проблему, а не отключать проверки с строгим сглаживанием.
Было много предложений по использованию союза - что может быть подходящим объединением для этого случая?