VC++: sizeof使用中的几点说明

    int ic = sizeof(bool);           // x86:1        x64:1
    int id = sizeof(char);           // x86:1        x64:1
    int i4 = sizeof(short);          // x86:2        x64:2
    int i8 = sizeof(WORD);           // x86:2        x64:2
    int i9 = sizeof(DWORD);          // x86:4        x64:4
    int i1 = sizeof(int);            // x86:4        x64:4
    int i2 = sizeof(long);           // x86:4        x64:4
    int i5 = sizeof(float);          // x86:4        x64:4
    int i0 = sizeof(LONGLONG);       // x86:8        x64:8
    int i6 = sizeof(double);         // x86:8        x64:8

    int ia = sizeof(HANDLE);         // x86:4        x64:8
    int ib = sizeof(HWND);           // x86:4        x64:8
    int i7 = sizeof(int*);           // x86:4        x64:8
    int i3 = sizeof(void*);          // x86:4        x64:8

1.sizeof几点说明,sizeof取的数值不是操作系统绝定的,它由编译器在编译期间就已经定了下来,
在编译好的exe文件中,sizeof的位置会被一个常数代替,
编译成32位程序时,指针类型都是4字节,
编译成64位程序时,指针类型都是8字节。
其他的基本类型大小都是一样的。

2.sizeof取结构体时,存在字节对齐的问题。

3.sizeof取类时,和结构体一样,当没有成员变量的结构体或类时的大小是1,
静态变量和成员函数不占用sizeof的大小。

4.sizeof取枚举类型是就是 sizeof(int)

5.sizeof取联合体时,是最大的那个类型的长度。

6.sizeof取数组时,取的是数组大小。

7.sizeof 后面如果是变量名 可以不用括号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值