gpt4 book ai didi

c++ - c++ sizeof 运算符如何计算大小?

转载 作者:IT老高 更新时间:2023-10-28 22:33:40 24 4
gpt4 key购买 nike

我创建了一个只有 2 个公共(public)函数(构造函数和析构函数)的类 X,并且使用 sizeof 运算符将类大小变为 1。

当我在上面的类声明中添加一个 char 类型的私有(private)数据成员时,大小仍然是 1。最后我给它添加了一个整数类型作为类数据成员,现在大小为8字节。

请向我解释如何计算类(class)人数。

最佳答案

首先,认识到非虚函数对类的大小没有影响。

any类的实例大小至少为1字节,即使类为空,这样不同的对象会有不同的地址。

添加 char 可以确保不同的对象具有不同的地址,因此编译器不会人为地将大小加一。然后大小为 sizeof(char) = 1.

然后您添加一个 int,它(可能)在您的平台上添加 4 个字节。然后编译器决定填充该类,以便出于性能/CPU 要求的原因将其对齐,并添加 3 个空字节,以便现在大小为 1 + 3 + 4 = 8。它可能会在 之前添加填充int 成员,以便它将在 4 字节边界上对齐,但除非您的 CPU 需要,否则不需要这样做。

您可以在 the Wikipedia page 上阅读有关填充的信息.

关于c++ - c++ sizeof 运算符如何计算大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com