sizeof到底该怎么算

首先对一个空类的sizeof,大家都知道不是0,一般是1,那么为什么呢,在早期的C++编译器中,这个值是0的,但是这样会造成创建的对象与它后面的对象有相同的地址,所以目前大多数编译器中这个值是1。

当不为空时,我们来看一个实例:

class A
{
    int a;
    char b;
public:
    virtual funA();
    virtual funB();
    funC();
    static funD();
    static int c();
};

问sizeof(A)是多少

首先对于类的成员分配空间是字节对齐的,因此占8字节;对于虚函数,不管有几个虚函数,都只建立一张虚函数表,类中需要一个指针,因此占4字节;对于普通函数,是存储在栈中,不计入sizeof计算的空间;static类型的成员由类的所有对象共享,也不计入sizeof计算的空间。

因此答案是12(32编译器中)。

时间: 2024-10-28 16:13:11

sizeof到底该怎么算的相关文章

外墙清洗这件事,到底怎样才算安全?

广州继上次5月"蜘蛛人"坠亡事故之后10月又被报出一起外墙清洗工不幸坠落的事故消息.10月8日下午5点左右,南方财经的记者收到街坊报料,在广州市白云区广园中路333号一家汽车4s店门口,外墙清洁工作架倒塌,造成一死一伤.当记者赶到现场的时候,发现一个白色的铁架子横在路边,一头压在一辆汽车上,死者是一名女性外墙清洁工. 在附近的目击街坊说,事故发生时,有两名外墙清洁工站在3米多高的工作架上擦洗外墙玻璃,另外两名清洁工推着架子向前走时,因为没有注意到地面不平整,架子突然失去平衡,导致架子上

屏幕尺寸,分辨率,像素,PPI之间到底什么关系?

转载自:http://www.jianshu.com/p/c3387bcc4f6e 感谢博主的无私分享. 今天我给大家来讲讲这几个咱们经常打交道的词到底啥意思,以及他们之间到底有什么关系.这篇文章是我花了一个下午从N多篇文章里提炼出的一个白话版,保证让你看得懂. 咱们从手机开始说起吧.先上一张图,给大家看看关于手机屏幕方面的一些参数.红框内的三个参数,大家一定都不陌生,我也不陌生.不过讲真的,就在不久前,我连手机的屏幕尺寸到底是怎么算出来的都不知道.下面我们开始慢慢讲. 屏幕(主屏)尺寸是什么,

关于PCB布线的顺序到底是怎样才合理?

有人说先布好电源线和地线,让它们尽量靠近走,然后再考虑信号线:也有人说先布好关键的信号线,然后再走电源和地线:还有人说先布好电源线,再布信号线,地线最后布.到底怎么样才算好呢?或者说,一般应按照什么顺序? 从原理图时就仔细考虑了,原理图最好做成模块化的分立原理图,这样布的时候会轻松很多 先将复杂CPU 的引脚扇出到IC的外围. 推荐使用下面的顺序: 先摆好位置-->难点先布线-->其他布线-->电源线-->地线.

【好文转载c++】 sizeof 使用的经典总结

为了在人面前畅快的吹牛逼,你必须学会背后努力  -----张小二. 写在转载之前: sizeof到底是多少?本来我没有关注,只是有次室友问了我几个sizeof的问题,我被问住了,他当时问我了sizeof(a);是数组,则是数组的字节大小, 如果  void  fun(int a[],int len) {    cout<<sizeof(a)<<endl;//是多少呢,退化为指针,是32位. }   首先你看看http://blog.163.com/[email protected]

坑爹系列:sizeof运算符

C语言里的sizeof关键字用于返回变量的类型宽度(变量所占的字节个数).例如: #include <stdio.h> int main() { int i = 0; int size = sizeof i; printf("size of i is: %d",size); return 0; } 会在控制台打印出int类型的变量i在内存中所占的字节的个数.我机器上的执行结果是: size of i is: 4 从上面这个例子看,sizeof蛮好用的,同时你可能觉得以后你需

刨根问底:ext3/ext4文件系统最大空间及单个文件大小演算法则

从ext3和ext4文件系统来窥探空间和文件大小的演算法则 学习操作系统就不得不研究磁盘以及磁盘文件系统,磁盘是底层物理设备,而文件系统则是管理磁盘的上层工具,文件系统规划了磁盘存放数据的格式,确定了一个操作系统能够支持多大的磁盘空间,每个分区能够支持多大的数据空间,以及每个文件所能支持的大小.通常对系统管理员而言,最需要的知道的就是最大磁盘空间,最大分区空间以及最大文件的大小.本论题只讨论这三种大小到底是怎么算出来的,而不是死记硬背.知道了原理,以后不管遇到什么文件系统,都会有章可循,至少知道

微信控:让你在亲近中疏离

IT之家(www.ithome.com):微信控:让你在亲近中疏离 如今,在大街小巷.地铁公交,在饭桌前甚至在床上,满眼尽是"低头族",他们沉浸在微信的世界里忘乎所以,被冠名为"微信控". "微信控"的产生,正成为最新.最值得关注的社会现象和心理现象--他们整个人被手机"俘虏"了,吃饭时捧着,坐车时拿着,如厕不离手--微信似乎构成了整个生活,一切的交际与消遣都可以在微信上实现和达成,手机上的消遣和"聚会"几

ASP.NET的三层架构(DAL,BLL,UI)

BLL 是业务逻辑层 Business Logic Layer DAL 是数据访问层 Data Access Layer ASP.NET的三层架构(DAL,BLL,UI) 图形表示三层结构. 其中web即为USL层 web –> bll –> dal | | | | V | +–> model <-+ 一.三层体系架构 1.表示层(USL):主要表示WEB方式,也可以表示成WINFORM方式.如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务. 2.业务逻

《经验之谈》想要做好SEO推广必知要事,峰任策划告诉您。

如果您已经步入或者想做SEO推广的人呢,这些事情是必须要知道的.做SEO的人必须要知道自己所做的产品或者品牌面对的到底是什么样的人群,选择好产品类型后,可以从以下入手. 做SEO的人都知道网站如果想要获取流量就必须要做良好的用户体验.那么要如何才能做好用户体验呢?那么你就必须要了解人性的弱点,利用他们的弱点去做文章.那么究竟人性都有哪些弱点呢?在著名的"七宗罪"当中,列举了人类的七种弱点,分别是贪食.色欲.贪婪.暴怒.怠惰.伤悲.自负或傲慢......这是人类的内心深处的原始镌刻,任何人都拥有,