若char是一个字节,int是4字节,指针类型是4字节,关于下面代码的疑问?
1条回答 默认 最新
关注 若按4字节对齐sizeof(CTest)的值是12;
若按1字节对齐sizeof(CTest)的值是9
解释:
在类中,如果什么都没有,则类占用1个字节,一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节。如果只有成员函数,则还是只占用1个字节,因为类函数不占用空间
虚函数因为存在一个虚函数表,需要4个字节,数据成员对象如果为指针则为4字节,注意有字节对齐,如果为13字节,则进位到16字节空间。
sizeof的本质是得到某个类型的大小,确切的来说就是当创建这个类型的一个对象(或变量)的时候,需要为它分配的空间的大小。而类也可以理解为类似于int、float这样的一种类型,当类中出现static成员变量的时候,static成员变量是存储在静态区当中的,它是一个共享的量,因此,在为这个类创建一个实例对象的时候,是无需再为static成员变量分配空间的,所以,这个类的实例对象所需要分配的空间是要排除static成员变量的,于是,当sizeof计算类的大小的时候会忽略static成员变量的大小
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥30 Markdown在VScode编辑器下插入视频
- ¥15 stm32c8t6工程,使用hal库
- ¥100 有偿求易语言word文档取doc和docx页数方法或模块
- ¥15 找能接spark如图片的,可议价
- ¥15 关于#单片机#的问题,请各位专家解答!
- ¥15 博通raid 的写入速度很高也很低
- ¥15 目标计数模型训练过程中的问题
- ¥100 Acess连接SQL 数据库后 不能用中文筛选
- ¥15 用友U9Cloud的webapi
- ¥20 电脑拓展屏桌面被莫名遮挡