我知道存在以下数据模型:

  • 32位* nix: ILP32
  • 32位Windows: ILP32
  • 32位OS X: ILP32
  • 64位* nix: LP64
  • 64位Windows: LLP64
  • 64位OSX: LP64

  • http://www.unix.org/whitepapers/64bit.html

    Linux内核的64位版本使用LP64数据模型(http://www.unix.org/version2/whatsnew/lp64_wp.html)。

    更新

    C++ 03 Standard $ 5.3.3 / 1



    因此,真正的问题是:
    编译器(例如gcc)是否考虑到操作系统(例如linux)选择的数据模型?

    最佳答案

    编译器针​​对特定目标进行编译。有些编译器只有一个目标或一组非常有限的目标。由于您要求提供gcc作为示例,因此查看它们的文档会发现 Machine Descriptions Target Files 的格式。

    Their documentation mentions



    因此,请确保检查gcc -vgcc -dumpmachine的输出以查看默认目标是什么。

    关于c++ - Linux数据模型和原始类型的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46589959/

    10-10 03:19