【发布时间】:2018-02-06 11:30:29
【问题描述】:
结构是C编程语言中的复合数据结构;它们由诸如整数和指针之类的原语组成,它们都以相邻的方式(例如数组)放置在内存中。
我的问题是,结构本身是由什么组成的?它们是一种数组吗?例如,哈希表可以实现为链表数组。以类似的方式,结构实现为什么? 如果需要,请在 x86 汇编级别解释。谢谢。
【问题讨论】:
-
0s 和 1s...这有点太宽泛了。
-
据我所知,不像数组。数组是连续的,但结构可能包含填充。
-
它们不是“用语言本身”实现的。 C 实现使用结构定义作为访问一块内存的指南(以实现定义的方式)。翻译后,任何人类可读的“结构”概念都消失了。
-
它们不是元数据,它们只是数据。您可以将其视为一种抽象,就像数组一样。你只说某物是一个数组,如果它是有意义的,因为对它执行的操作,是进行的访问。但是你很可能只是说它们是不同的变量。在汇编级别实际上只有变量。
-
再次错误重复。 C 和 C++ 是不同的语言,因此对象布局有不同的规则