c - 如何在C中调整整个结构的大小?

标签 c struct sizeof

我定义了以下结构:

typedef struct
{
   int a;
} A;

typedef struct
{
   int b;
} B;

typedef struct
{
   A a,
   B b[10];
} C;

sizeof(C) 将为 sizeof(A) + sizeof(B) * 10?我想要struct C的整个大小,如何获取它?

最佳答案

sizeof(C) 至少为 sizeof(A) + sizeof(B) * 10

由于对齐问题,聚合类型可能会更大。考虑到我们实际上讨论的是 11 个整数,在这种情况下可能不是。

关于c - 如何在C中调整整个结构的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16776439/

相关文章:

c - 如何在嵌入式 C 中读取来自 GSM 调制解调器的消息?

c - memcmp 上的段错误

c - 如何在任何平台上识别字节的大小?

C、 "conflicting types for... "错误

c - 如何使用 libuv 以通用方式(tcp/pipe)接受客户端?

arrays - 将嵌套结构数组 reshape 为具有不同大小元素的元胞数组

c - Int 在 struct 中不起作用

c++ - 如何获取以字符串和其他用户定义类型作为数字的给定结构的大小(以字节为单位)?

c++ - 为什么结构体的 sizeof 不等于每个成员的 sizeof 之和?

c - sizeof(void) 在 C 中等于 1?