gpt4 book ai didi

c++ - 结构大小与 typedef 版本不同?

转载 作者:行者123 更新时间:2023-11-30 00:41:47 24 4
gpt4 key购买 nike

我的代码中有以下结构声明和类型定义:

struct blockHeaderStruct {
bool allocated;
unsigned int length;
};
typedef struct blockHeaderStruct blockHeader;

当我执行 sizeof(blockheader) 时,我得到了 4 个字节的值,但是当我执行 sizeof(struct blockHeaderStruct) 时,我得到了 8 个字节。

为什么会这样?为什么我没有返回 5?

最佳答案

首先,你不能做sizeof(blockHeaderStruct)。那根本不会编译。你可以做的是 sizeof(struct blockHeaderStruct),它确实可以给你 8 个字节作为结果。

其次,从 sizeof(blockheader) 得到不同的结果的可能性很小。根据您对 sizeof(blockHeaderStruct) 的引用来判断(同样,它甚至不会编译)您对问题的描述是不准确的。仔细看看你到底在做什么。最有可能的是,您使用的是指针类型的 sizeof(它给您 4),而不是结构类型。

无论如何,请尝试发布真实代码。

关于c++ - 结构大小与 typedef 版本不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2778289/

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