C++主要資料類型在電腦中所佔位元組大小

來源:互聯網
上載者:User

遇到了資料存放區的大端和小端問題,這你妹的看的一頭霧水,發現我基本知識嚴重匱乏啊,先瞭解C++各資料類型在自己機子上佔多少位元組吧,以及這些資料類型所佔位元組大小與神馬有關。各種查資料然後寫代碼檢驗,小結於本文中,給自己補補基礎知識。

先來列一下C++的資料類型:

整型:int,long。這兩個還分signed(有符號)和unsigned(無符號)的,當然有符號和無符號所佔位元組大小是一樣的,就不管他了。

布爾型:bool         

字元型:char,wchar_t

浮點型:float,double

這隻能上代碼驗證了,貌似機子不同資料類型所佔大小也不同,太威武了,我就檢查下我這個32位windows系統電腦吧。我用的IDE是Code::Blocks,發現挺好用的,主要是工程檔案小,不像vs2010建個工程就大得很,哥這小硬碟吃不消啊(題外話)。

先看整型的吧,代碼如下:

#include <iostream>using namespace std;int main(){    int a;    long b;    int Byteof_int=sizeof(a);    int Byteof_long=sizeof(b);    cout << "int:" <<Byteof_int<<endl;    cout << "long:" <<Byteof_long<<endl;    return 0;}

結果顯示:

int:4

long:4

int和long都是佔4個位元組(即32位)。

其他資料類型驗證吧上面代碼資料類型替換下就是了,得出下面的結果:

bool:1

char:1

wchar_t:2

float:4

double:8

特別要注意的時,對於指標類型,都佔4個位元組,因為指標指向的是一個地址,32位作業系統就是4位元組。當然如果是64位作業系統那就是8位元組了。

此外,int這個類型占作業系統一個記憶體單元大小。早先16位作業系統一個記憶體單元是64位,所以是2個位元組;32位系統一個記憶體單元是是32位,所以是4位元組;64位作業系統一個記憶體單元是16位,故佔8個位元組。

 

因為用到MFC編程,mfc裡還有很多資料類型啊,看看吧(這隻是一部分,還有很多用typedef和宏定義的類型)。

BOOL:int型,Boolean值(TRUE or FALSE)

BSTR:32-bit字元指標

BYTE:8-bit整數,無加號或減號

COLORREF:32-bit數值,代表一個顏色值

DWORD:32-bit整數,無加號或減號

LONG:32-bit整數,有加號或減號

LPARAM:32-bit數值,作為視窗函數或callback函數的一個參數

LPCSTR:32-bit指標,指向一個常數字串

LPSTR:32-bit指標,指向一個字串

LPCTSTR:32-bit指標,指向一個常數字串。此字串可移植到Unicode

LPTSTR:32-bit指標,指向一個字串。此字串可移植到Unicode

LPVOID:32-bit指標,指向一個未指定類型的資料

LPRESULT:32-bit數值,作為視窗函數或callback函數的傳回值

UINT:Win16中,16-bit無加號或減號,Win32中,32-bit無加號或減號

WNDPROC:32-bit

WORD:16-bit整數,無加號或減號

WPARAM:視窗函數的一個參數,Win16中16bits,Win32中32bits

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.