c++ 基础语法一(空类型的sizeof)

本文深入解析C++中空类型的sizeof运算原理,通过具体实例阐述了不同类型成员对sizeof运算结果的影响,揭示了空类型在内存分配上的独特行为,帮助开发者更好地理解和运用C++的基础特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、当定义一个空的类型,没有任何成员变量或者成员函数,对该类型求sizeof,得到的结果为 1  的原因是当我们声明该类型实例的时候,它都必须在内存中占有一定的空间,至于占多少空间,由编译器决定,VS中每个空类型的实例要占用1个字节的空间。


2、在上述类型中添加一个析构函数和一个构造函数,则再求sizeof的结果是 1  ,原因是调用析构函数和构造函数只需要知道函数的地址即可,而这些函数的地址只与其类型相关,而与类型的实例无关。


3、如果把析构函数标记为虚函数,则求sizeof ,在32位机器上得到 4 , 在64位机器上得到的是  8 。原因是,编译器一旦发现一个类型中有虚函数,就会为该类型生成一个虚函数表,并在该类型的每一个实例中添加一个指向虚函数表的指针。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值