C 獲取系統和程式的位數

2021-08-09 18:11:24 字數 1226 閱讀 3483

如今 64 位系統越來越流行了 , 對於軟體開發人員來說 , 掌握 64 位開發技術將會有更好的發展空間 ; 而且經過這幾年的發展 , 64 位開發工具也成熟了 , 例如 visual studio 2010 等後續版本 ;

關於如何配置64位平台 , msdn上有詳細的介紹 :

在很多時候 , 我們希望能相容老系統 , 於是配置了兩個編譯平台 win32 和 x64 ;

但光這樣做還是不夠的 , 因為老系統不支援某些新功能 ; 所以我們需要在執行時動態動態判斷 ;

最常見的判斷有兩種 :

對於第一種判斷程式位數 , 雖然也可以通過配置預處理符號 , 做編譯時判定 ; 但該方法稍微有點繁瑣 , 而且在有些情況下不太適合 , 例如我想獲得程式位數字串 , 就必須用#if等語句寫多行** ;

對於第二種判作業系統位數 , 那就只有在執行時判斷了 ;

#include "stdafx.h"

#include #include #include #include // 獲取程式位數 (被編譯為多少位的**)

int getprogrambits()

// 獲取系統資訊

void safegetnativesysteminfo(__out lpsystem_info lpsysteminfo)

typedef void (winapi *funcgetsysteminfo)(lpsystem_info lpsysteminfo);

funcgetsysteminfo funcgetnativesysteminfo = (funcgetsysteminfo)getprocaddress(getmodulehandle(_t("kernel32")), "getnativesysteminfo");

// 優先使用 "getnativesysteminfo" 函式來獲取系統資訊

// 函式 "getsysteminfo" 存在系統位數相容性問題

if (null != funcgetnativesysteminfo)

else }

// 獲取作業系統位數

int getsystembits()

return 32;

}int _tmain(int argc, _tchar* argv)

作者 github : tojohnonly , 部落格 : enskdecode

linux獲取系統位數

getconf命令 getconf命令可以用來獲取系統的基本配置資訊,如作業系統位數,記憶體大小,磁碟大小等等。確定實際記憶體大小 getconf real memory 確定是否機器硬體是 32 位或 64 位 getconf hardware bitmode 確定是否核心是 32 位或 64 位...

c 判斷程式及作業系統位數

曾經在書上看到過,也被人問起過,搜尋過,為了記憶更加深刻,還是寫一篇博文吧 程式位數是將一段程式編譯後,程式本身的位數,比如32bit。32bit程式在一般情況下可以在32bit和64bit的作業系統上執行。下面分別列出獲取程式位數和作業系統位數的方法 程式位數 通過指標位數即可獲得 sizeof ...

linux系統位數檢視和cpu位數

1.uname a如果有x86 64就是64位的,沒有就是32位的 這是64位的 uname a linux desktop 2.6.35 23 generic 37 ubuntu smp fri nov 5 19 17 11 utc 2010 i686 gnu linux 這是32位的 uname...