c++高级---C++主要数据类型在计算机中所占字节大小
2013-04-02 12:30
801 查看
转自:/article/4884198.html
遇到了数据存储的大端和小端问题,这你妹的看的一头雾水,发现我基本知识严重匮乏啊,先了解C++各数据类型在自己机子上占多少字节吧,以及这些数据类型所占字节大小与神马有关。各种查资料然后写代码检验,小结于本文中,给自己补补基础知识。
先来列一下C++的数据类型:
整型:int,long。这两个还分signed(有符号)和unsigned(无符号)的,当然有符号和无符号所占字节大小是一样的,就不管他了。
布尔型:bool
字符型:char,wchar_t
浮点型:float,double
这只能上代码验证了,貌似机子不同数据类型所占大小也不同,太威武了,我就检查下我这个32位windows系统电脑吧。我用的IDE是Code::Blocks,发现挺好用的,主要是工程文件小,不像vs2010建个工程就大得很,哥这小硬盘吃不消啊(题外话)。
先看整型的吧,代码如下:
?
结果显示:
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
遇到了数据存储的大端和小端问题,这你妹的看的一头雾水,发现我基本知识严重匮乏啊,先了解C++各数据类型在自己机子上占多少字节吧,以及这些数据类型所占字节大小与神马有关。各种查资料然后写代码检验,小结于本文中,给自己补补基础知识。
先来列一下C++的数据类型:
整型:int,long。这两个还分signed(有符号)和unsigned(无符号)的,当然有符号和无符号所占字节大小是一样的,就不管他了。
布尔型:bool
字符型:char,wchar_t
浮点型:float,double
这只能上代码验证了,貌似机子不同数据类型所占大小也不同,太威武了,我就检查下我这个32位windows系统电脑吧。我用的IDE是Code::Blocks,发现挺好用的,主要是工程文件小,不像vs2010建个工程就大得很,哥这小硬盘吃不消啊(题外话)。
先看整型的吧,代码如下:
?
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
相关文章推荐
- C++主要数据类型在计算机中所占字节大小
- C++主要数据类型在计算机中所占字节大小
- C++主要数据类型在计算机中所占字节大小
- C++主要数据类型在计算机中所占字节大小
- C和C++中的主要数据类型和字节大小
- C和C++中的主要数据类型和字节大小
- C和C++中的主要数据类型和字节大小
- C和C++中的主要数据类型和字节大小
- Microsoft visual C++ 2010学习版中C语言基本数据类型所占字节大小(系统为64位win8.1)
- c++中32位64位操作系统基本数据类型字节大小
- C++在不同操作系统的基本数据类型字节大小(转)
- C++ 基本语法之变量(指针)与数据类型(占用字节大小)
- MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差别 图 浮点型:命令
- C++ 高级数据类型(六)—— 自定义数据类型
- C++冲刺(一)内置数据类型大小
- int与long 两种数据类型有什么区别?|__int64固定大小为8字节,不受运行环境(的CPU和操作系统位数)影响
- C/C++基本数据类型所占字节数
- C/C++基本数据类型所占字节数
- c++各种数据类型所占存储空间大小
- C/C++中不同数据类型所占用的内存大小