在 C 中是否有任何预处理器指令或其他方法来检查正在运行的机器是 32 位还是 64 位?我试过用谷歌搜索这个,但 C 的问题是它会为 C#、C++ 等带来结果。另外,我希望它能在 Windows、Linux 和 Mac 上运行。
最佳答案
在运行时执行此操作的明显方法。
#include <limits.h>
#include <stdio.h>
int main()
{
printf("%d bits\n", (int)(CHAR_BIT * sizeof(void *)));
return 0;
}
从技术上讲,这不能 100% 保证有效。实际上,这将适用于大多数现代编译器 - 使用与底层系统架构不同的多个位来表示 void 指针是不常见的。
要进行编译时检查,没有标准方法。有必要求助于特定于您的编译器/预处理器的宏。因此,您需要阅读相关文档。
关于c - 如何检查运行在 C 中的机器是 32 位还是 64 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29403343/