【发布时间】:2012-03-03 11:38:45
【问题描述】:
我对系统/cpu/程序的字节顺序感到困惑。
所以我必须问一些问题让我的思路清晰。
问题 1
如果我只在我的 C++ 程序中使用 char 类型:
void main()
{
char c = 'A';
char* s = "XYZ";
}
然后将此程序编译成一个名为a.out的可执行二进制文件。a.out 可以在 little-endian 和 big-endian 系统上运行吗?
问题 2
如果我的 Windows XP 系统是 little-endian,我可以在 VMWare/VirtualBox 中安装 big-endian Linux 系统吗? 什么使系统小端或大端?
问题 3
如果我想写一个字节顺序无关的 C++ 程序,我需要考虑什么?
【问题讨论】:
-
你不应该永远期望一个编译的可执行文件可以在任何地方运行它不是为它编译的。
-
除非它实际上没有被编译。 IE。托管语言。尽管这也有一些注意事项。
-
@mydogisbox:当然我在这里指的是 C++。我认为这同样适用于托管 C++(虽然不确定)。
-
据我了解,托管 C++ 在虚拟机 (CLR) 上运行,因此它实际上可能更独立于平台。
标签: c++ endianness