【发布时间】:2011-10-18 10:44:11
【问题描述】:
我在网上搜索,找不到任何程序。
我找到了以下链接 size of machine 64 or 32 bit 和 processing files in 64 bit machine but developing in 32 bit machine。
现在很明显 sizeof(int*) 不是办法。因为它将根据用于编译的机器的体系结构返回 4/8。那么如何找到呢?
条件:不使用任何系统/操作系统/库调用。
其实是面试时问的问题。
【问题讨论】:
-
cout << "Are you using a 64-bit computer?" << endl; cin >> answer; -
@Dennis cout 和 cin 是库调用。
-
问题是如果你在 32 位模式下编译,同时运行 CPU 会将你视为 32 位进程。在不使用操作系统的情况下,我相信您所做的一切都会像在 32 位地址空间中一样,即使在 64 位系统上运行也是如此。
-
这个问题确实缺乏实用价值。这在理论上是不可能的,但在实践中微不足道。
-
我知道这不是 OP 所要求的,但我有一个问题 - 如果程序是单独编译的(在 32 位和 64 位系统上) - sizeof(pointer)接近工作?
标签: c++