0

我正在阅读有关 C++ 序列化的页面。 http://www.parashift.com/c++-faq-lite/serialize-binary-format.html 第三个项目符号让我感到困惑(开头的那个:“如果二进制数据可能被另一台计算机读取,而不是那个写它时,要非常小心字节序问题(小字节序与大字节序)和 sizeof 问题”),其中还提到:“包含机器依赖项的头文件(我通常称之为machine.h)”。

这些字节序和大小问题是什么?(sizeof可能是在一台机器上int可以是 4 个字节,而在另一台机器上可以是更少的字节,对吧?)。

machine.h文件的外观如何?

互联网上是否有一些教程以一种可以理解的方式解释了所有这些事情?

有时在某些源代码中,我还会遇到 typedef,例如:

typedef unsigned long long      u64_t;

它与该machine.h文件有某种关系吗?

4

1 回答 1

3

sizeof:在一种架构long上是 64 位,另一种是 32 位。

字节序:让我们假设 4 字节长。这 4 个字节可以在内存中以不同的顺序放置,比如在 intel 上,最低有效位在最低地址,在 motorola 或 sparc 上,顺序相反,但也可以有 2301 顺序的处理器。

于 2013-06-17T12:04:31.120 回答