typedef類型別名

不同作業系統基本資料型態記憶體大小

C++建立不同作業系統(跨平台)可以支援的資料型態。

作業系統 short int long long long
Linux 2byte 4byte 8byte 8byte
Windows 2byte 4byte 4byte 8byte

由上表可以發現,Linux與Windows在long資料型態占用記憶體大小不同。

類型別名

為了解決long的資料型態在不同作業系統是不同記憶體大小,因此為類型取別名。

在寫程式時,資料型態使用類型別名,不再使用基本資料型態int,short,long,long long,避免不同作業系統資料型態記憶體大小不同的問題。

語法如下

typedef 資料型態	類型別名

Windows類型別名

以下程式碼

int16_t是short的類型別名

int32_t是int的類型別名

int64_t是long long的類型別名

1
2
3
4
  //windows
  typedef short int16_t;//16位元整數
  typedef int int32_t;//32位元整數
  typedef long long int64_t;//64位元整數

Linux類型別名

int16_t是short的類型別名

int32_t是int的類型別名

int64_t是long的類型別名

1
2
3
4
  //Linux
  typedef short int16_t;//16位元整數
  typedef int int32_t;//32位元整數
  typedef long int64_t;//64位元整數

size_t 無符號整數類型

  • 在32位元電腦size_t是unsigned int的類型別名
  • 在64位元電腦size_t是unsigned long long的類型別名
電腦 整數 byte數 範圍大小
32位元 unsigned int 4byte 0~4294967295
64位元 unsigned long long 8byte 0 到 18,446,744,073,709,551,615

由上表可以發現不同位元的電腦,C++顯示的整數型態不一樣。

32位元的size_t類型別名

size_t是unsigned int類型別名

1
typedef unsigned int size_t;

64位元的size_t類型別名

size_t是unsigned long long類型別名

1
typedef unsigned long long size_t;

results matching ""

    No results matching ""