代码之家  ›  专栏  ›  技术社区  ›  EboMike

本机类型的二进制表示是否保证在所有目标上都相同?

  •  3
  • EboMike  · 技术社区  · 14 年前

    我计划将我的数据以二进制格式存储为资源,将其读入int缓冲区,并基本上直接传递到一个本地C++函数,它可以将其转换成结构/类并使用它。显然,没有指针,只有int和float。

    问题是-我需要做什么样的调整?我想我需要检查一下 ByteOrder.nativeOrder()

    (另外-由于我是使用NDK编译的,我知道它已经是什么体系结构了(在我的例子中是ARMv7-A),所以从技术上讲,我可以跳过endian的诡计,直接按原样处理数据吗?)

    1 回复  |  直到 12 年前
        1
  •  3
  •   doron    14 年前

    还有一个问题是在结构中填充到单词大小:

    struct st
    {
      char a;
      int  b;
    };
    

    会有一个 sizeof struct my_packed_struct __attribute__ ((__packed__)) )同样如此。这将确保结构的内部如您所期望的那样。