如何用C++判断一个系统是16位、32位还是64位?
方法一:使用指针的sizeof()判断
#include <iostream>
using namespace std;
int main()
{
int *p = nullptr;
if(sizeof(p) == 8)
{
cout << "64 bits system" << endl;
}
else if(sizeof(p) == 4)
{
cout << "32 bits system" << endl;
}
else if(sizeof(p) == 2)
{
cout << "16 bits" <<endl;
}
else
{
cout << "unknown system" << endl;
}
return 0;
}
方法二:使用整数溢出来判断
不同系统的基本数据类型的字节长度区别,如下表:文章来源:https://www.toymoban.com/news/detail-849727.html
平台/类型 | char | short | int | long | long long |
---|---|---|---|---|---|
16位 | 1 | 2 | 2 | 4 | 8 |
32位 | 1 | 2 | 4 | 4 | 8 |
64位 | 1 | 2 | 4 | 8 | 8 |
#include <iostream>
using namespace std;
int main()
{
int test = (1 << 15);
if(test > 0)
{
int test_2 = (1 << 31);
if(test_2 > 0)
{
cout << "64 bits system" <<endl;
}
else
{
cout << "32 bits system" << endl;
}
}
else
{
cout << "16 bits system" << endl;
}
return 0;
}
方法三:使用预定义宏来判断文章来源地址https://www.toymoban.com/news/detail-849727.html
#include <iostream>
using namespace std;
int main()
{
#ifdef __x86_64__
{
cout << "64 bits system" << endl;
}
#elif defined __x86_32__
{
cout << "32 bits system" << endl;
}
#elif defined __x86_16__
{
cout << "16 bits" <<endl;
}
#else
{
cout << "unknown system" << endl;
}
#endif
return 0;
}
到了这里,关于如何用C++判断一个系统是16位、32位还是64位?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!