结构体实际上是如何用C编程语言实现的?

时间:2017-08-29 06:09:36

标签: c assembly struct x86

结构是C编程语言中的复合数据结构;它们由诸如int和指针之类的基元组成,它们以相邻的方式放置在内存中,例如数组。

我的问题是,结构本身是由什么构成的?它们是一种阵列吗?例如,哈希表可以实现为链表列表。以类似的方式,什么是实现的结构? 如果需要,请在x86汇编级别解释。谢谢。

1 个答案:

答案 0 :(得分:0)

在程序集级别结构可归结为由对应于结构成员的偏移量访问的地址。

根据对齐规则和存储类内存分配给结构的实例。

示例:

struct A
{
  int a,
  char b
}a1;

在上面的情况下,如果你写a1.b = 5,它的汇编等价物将是:

MOV 5 TO ADDRESS OF a1 + 4 //假设整数大小为4