跨平台判斷64位和32位開發的一些巨集定義

2022-03-11 23:58:32 字數 779 閱讀 5983

#ifdef _win32

//windows x86 or x68

#ifdef _win64 //x64

typedef uint64_t point_t;

#else //x86

typedef uint32_t upoint;

#endif //_win64

#else //unix

#ifdef __x86_64__ //x64

#elif __i386__ //x86

#endif

#endif //_win32

_win32是在windows32位和64位都會有define的,所以區分64還是32位主要用到的是_win64,_win32只用作區分是否windows系統

ansi c標準中的預定義巨集:

__line__ // 在源**中插入當前源**行號;

__file__ // 在原始檔中插入當前源檔名;

__function__ // 在原始檔中插入當前函式名;

__date__ // 在原始檔中插入當前的編譯日期

__time__ // 在原始檔中插入當前編譯時間;

__stdc__ // 當要求程式嚴格遵循ansi c標準時該標識被賦值為1;

__cplusplus // 當編寫c++程式時該識別符號被定義。

//例子

printf("行號:%d 函式名:%s \n", __line__, __function__);

golang 判斷平台是32位還是64位

在strconv包中有個常量 const intsize 32 uint 0 63 const intsize intsize 在32位平台這個值為32 在64位平台,這個值為64 因此可以通過這個來判斷平台的位數.原理 在32平台系統 1.uint 0 在平台底層是0x00000000 2.uin...

Linux平台開發 64位與32位問題

長度 單位bit c type 32位64位 char88 short 1616 int32 32long 3264 long long 6464 float 3232 double 6464 指標 3264 主要的不同點在於long和指標,這兩種型別都由32bit變為64bit。同樣需要注意的有 ...

32位和64位的理解

大家都知道現在流行的作業系統是32位和64位的,都知道32位作業系統能 認出 4g以內的記憶體而64位的 可以認出多記憶體 2的64次方byte 簡稱大b,還有一種是小b,1個byte由8個bit組成 但是為什麼會64位的能認到的記憶體就多呢?先看一下概念 32位和64位 cpu一次處理資料的能力是...