• C++主要数据类型在计算机中所占字节大小


    遇到了数据存储的大端和小端问题,这你妹的看的一头雾水,发现我基本知识严重匮乏啊,先了解C++各数据类型在自己机子上占多少字节吧,以及这些数据类型所占字节大小与神马有关。各种查资料然后写代码检验,小结于本文中,给自己补补基础知识。

    先来列一下C++的数据类型:

    整型:int,long。这两个还分signed(有符号)和unsigned(无符号)的,当然有符号和无符号所占字节大小是一样的,就不管他了。

    布尔型:bool         

    字符型:char,wchar_t

    浮点型:float,double

    这只能上代码验证了,貌似机子不同数据类型所占大小也不同,太威武了,我就检查下我这个32位windows系统电脑吧。我用的IDE是Code::Blocks,发现挺好用的,主要是工程文件小,不像vs2010建个工程就大得很,哥这小硬盘吃不消啊(题外话)。

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #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

  • 相关阅读:
    复健运动1.0
    testng和pytest
    python排序算法
    万家
    Advanced Installer制作javaweb安装包
    一个由CountDownLatch引发的Bug
    二项树与二项堆
    排序网络
    Neuron+eKuiper 实现工业物联网数据采集、清理与反控
    在微信小程序中打造 MQTT 连接测试工具
  • 原文地址:https://www.cnblogs.com/xuyinghui/p/4940853.html
Copyright © 2020-2023  润新知