私はここにこの小さな宝石を持っています(C-FAQからシャムレスに盗まれたアイデア):
/* 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 )
それは新しい現在の標準(この質問が尋ねられたときのC-18)に準拠しているか(未定義の動作ではありません)、準拠している場合は、古いバージョンのどれもそれをサポートしていますか?
また、標準に準拠したC ++ですか?(はい、知っていますstd::endian
)
あなたが話をしている場合は問題と10.1で、このC FAQリスト、それはまだ有効な(私の知る限り)2つの異なる、大幅に異なる技術を推奨しています。
—
Steve Summit
このようなことで、C ++を終了したいと思います...
—
snoopy