Ich habe dieses kleine Juwel hier (Idee schamlos aus den C-FAQ gestohlen):
/* A lot of checks omitted to get rid of the architectures with a "weird" endianness */
/*...*/
#define MP_ENDIANESS ( (0x41424344ul == *(uint32_t*)"ABCD") ? MP_BIG_ENDIAN : MP_LITTLE_ENDIAN )
Entspricht es dem neuen aktuellen Standard (C-18 zum Zeitpunkt der Beantwortung dieser Frage) (das ist kein undefiniertes Verhalten) und wenn ja, welche der älteren unterstützen es auch?
Ist es auch standardkonformes C ++? (Ja, ich weiß von std::endian)