结构体是C编程语言中的复合数据结构;它们由诸如整数和指针之类的基元组成,所有这些基元都以相邻的方式(例如数组)放置在内存中。
我的问题是,结构本身是由什么制成的?它们是一种数组吗?例如,哈希表可以实现为链表数组。以类似的方式,结构体是如何实现的?如果需要,请在 x86 汇编级别进行解释。谢谢。
在程序集级别,结构归结为通过与结构成员相对应的偏移量访问的地址。
根据对齐规则和存储类,为结构实例分配内存。
Example:
struct A
{
int a,
char b
}a1;
在上面的情况下,如果你写a1.b = 5
它的汇编等效项是:
MOV 5 TO ADDRESS OF a1 + 4
//假设整数大小为4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)