我試圖確定,無論使用預定義的函數還是系統調用,操作系統是32位還是64位。我創建了以下程序。確定OS是32位還是64位而不使用預定義的函數或系統調用?
#include <stdio.h>
int main()
{
int i = 1;
int c = 0;
while(i)
{
i = i << 1;
c++;
}
printf("%d\n", c);
if (c == 32)
printf("OS is 32bit\n");
else if (c == 64)
printf("OS is 64bit\n");
else printf("wrong answer\n");
}
在32位操作系統提供了corret輸出,但在64位操作系統同時打印「操作系統是32位」。所以,我發現背後的原因,在32位和64位操作系統的數據庫大小爲int
4字節。那麼,有沒有什麼辦法可以在不使用預定義的函數或系統調用的情況下確定操作系統是32位還是64位?
@Ed治癒我知道先生,但有什麼方法可以確定嗎? – rsp
您需要進行一些操作系統調用才能找出有關操作系統的任何信息。對於Windows,[見這裏](http://stackoverflow.com/questions/7011071/detect-32-bit-or-64-bit-of-windows) –
是否可以確定沒有預定義函數或系統調用? – rsp