Estaba leyendo sobre hacer que el código sea más portátil usando enteros de ancho fijo. He encontrado this artículo que ayudó a explicar las cosas, y al final se sugiere el uso de esta unión anónima para detectar y reportar errores: typedefDetecta e informa errores tipodef ... ¿Qué está haciendo esto?
static union
{
char int8_t_incorrect[sizeof( int8_t) == 1];
char uint8_t_incorrect[sizeof(uint8_t) == 1];
char int16_t_incorrect[sizeof(int16_t) == 2];
char uint16_t_incorrect[sizeof(uint16_t) == 2];
char int32_t_incorrect[sizeof(int32_t) == 4];
char uint32_t_incorrect[sizeof(uint32_t) == 4];
};
estoy un poco perdido y yo estaba esperando que alguien podría explicar por qué esto está haciendo ?
Incluso los compiladores incrustados son un poco más inteligentes de lo que eran cuando se escribió el artículo, en 2004. –
Oh veo, muchas gracias por la explicación ... parece simple ahora – Morgan
No veo cómo esto es "abuso" . Sin sentido, tal vez. –