Endianness indicando a expressão do tempo de compilação em C

Já precisou escrever código C que está ciente do endianness das máquinas locais?

#define endianness (!(union{uint16_t x;uint8_t y;}){1}.y)

O código constrói uma união de inteiros de 8 e 16 bits e atribui o valor 0x0001 ao campo de 16 bits. Como os campos em uma união são alinhados à esquerda na memória, a execução do código em uma máquina big-endian produz o valor 1 para o campo de 8 bits ou 0 caso contrário.

Compiladores são geralmente inteligentes o suficiente para avaliar essa expressão em tempo de compilação, resultando em verificação de endianness de custo zero versus a abordagem usual usando stdlib’s htons.