C++ sizeof

 1 #include<iostream>
 2 using namespace std;
 3 class Small{};
 4 class LessFunc{
 5     int num;
 6     void func1(){}
 7 };
 8 class MoreFunc{
 9     int num;
10     void func(){}
11     int func2(){return 1;}
12 };
13 class NeedAlign{
14     char c;
15     double d;
16     int i;
17 };
18 class Virtual{
19     int num;
20     virtual void func();
21 };
22 int main(){
23     cout<<sizeof(Small)<<endl;
24     cout<<sizeof(LessFunc)<<endl;
25     cout<<sizeof(MoreFunc)<<endl;
26     cout<<sizeof(NeedAlign)<<endl;
27     cout<<sizeof(Virtual)<<endl;
28 }
29 输出:
30 1
31 4
32 4
33 24
34 8

1、不允许有长度为0的数据类型存在,所以Small 占1个字节空间

2、成员函数不占用空间。

3、数据对齐,目的提高CPU的存储速率。

4、如果一个类中有虚函数,则会具有指向虚函数的指针空间。

5、sizeof用于数组是,读取的是数组的全部占用空间,作用于指针时,不管指针指向的是什么,大小一律是4个字节。

 

转载于:https://www.cnblogs.com/teng-IT/p/5981624.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值