我知道存在以下数据模型:
http://www.unix.org/whitepapers/64bit.html
64位版本的Linux内核使用LP64数据模型(http://www.unix.org/version2/whatsnew/lp64_wp.html)。
更新
C ++ 03标准$ 5.3.3 / 1
sizeof(char),sizeof(signed char)和sizeof(unsigned char)为1;该 sizeof应用于任何其他基本类型(3.9.1)的结果是 的实现定义即可。 [注意:特别是sizeof(bool)和 sizeof(wchar_t)是实现定义的.69)
所以真正的问题是: 编译器(例如gcc)是否考虑了OS选择的数据模型(例如linux)?
答案 0 :(得分:0)
编译器为特定目标编译。有些编译器只有一个目标或一组非常有限的目标。由于您要求使用gcc作为示例,因此查看其文档会显示Machine Descriptions
和Target Files
的格式。
默认情况下,GCC会为您使用的相同类型的计算机编译代码。但是,它也可以作为交叉编译器安装
因此,请务必检查gcc -v
或gcc -dumpmachine
的输出,看看默认目标是什么。