const unsigned char* p;
int64_t u = ...; // ??
pが指す8バイトから64ビットの2進数のリトルエンディアン整数を読み取るための推奨される方法は何ですか?x64では、単一のマシン命令で実行できますが、ビッグエンディアンのハードウェアスワップが必要です。これを最適かつ移植可能に行うにはどうすればよいですか?
カールのソリューションは優れており、十分にポータブルですが、最適ではありません。これは疑問を投げかけます:なぜC / C ++はこれを行うためのより良い標準化された方法を提供しないのですか?それは珍しい構成ではありません。