gpt4 book ai didi

c - 如何解释 C 中结构的成员访问(点)运算符?

转载 作者:太空宇宙 更新时间:2023-11-04 02:00:22 24 4
gpt4 key购买 nike

我们在结构中使用点运算符来访问结构的特定元素。

现在如果我有一个结构:

struct x { 
int a;
float b;
};

并且我创建了一个对象 struct x obj,那么 obj.b 在编译器中究竟是如何解释的,以便访问 b? b在结构体中的地址位置是怎么算出来的?

最佳答案

struct x 的每个实例将具有相同的布局,这是根据您平台的 ABI 确定的。 C 标准对这种布局提出了一些要求,例如成员必须按声明顺序排列,但平台在对齐和填充方面具有相当大的灵 active 。

数据类型的布局struct x将结合哪里的知识obj从内存开始,以便定位 obj.b .如果您有兴趣学习布局,您可能需要使用 offsetof<stddef.h> 中找到的宏.

关于c - 如何解释 C 中结构的成员访问(点)运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27978111/

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