0

c++ でのシリアライゼーションに関するこのページを読んでいました。 http://www.parashift.com/c++-faq-lite/serialize-binary-format.html 3 番目の箇条書きで混乱しました (「バイナリ データがそのコンピュータとは異なるコンピュータによって読み取られる可能性がある場合、エンディアンの問題 (リトル エンディアンとビッグ エンディアン) と sizeof の問題には十分注意してmachine.hください。

これらのエンディアンと sizeof の問題は何ですか? (sizeofおそらく、あるマシンintでは4バイトになる可能性がありますが、別のマシンではバイト数が少ない可能性がありますよね?)。

そのmachine.hファイルはどのように見えるでしょうか?

これらすべてのことをわかりやすい方法で説明するチュートリアルがインターネット上にありますか?

一部のソース コードでは、次のような typedef に遭遇することもあります。

typedef unsigned long long      u64_t;

それは何らかの形でそのmachine.hファイルに関連していますか?

4

1 に答える 1

3

sizeof : あるアーキテクチャlongでは、別の 32 ビットでは 64 ビットです。

エンディアンネス: 4 バイト長と仮定しましょう。4 バイトはメモリ内で異なる順序で配置できます。Intel では最下位ビットが最下位アドレスにあり、motorola または sparc では順序が逆ですが、2301 順序のプロセッサも存在する可能性があります。

于 2013-06-17T12:04:31.120 に答える