我有一个C#背景.我非常喜欢像C这样的低级语言.
在C#中,struct默认情况下由编译器布局内存.编译器可以隐式地重新排序数据字段或填充字段之间的附加位.因此,我必须指定一些特殊属性来覆盖此行为以获得精确布局.
AFAIK,C struct默认情况下不重新排序或对齐a的内存布局.但是,我听说有一个很难找到的例外.
什么是C的内存布局行为?什么应该重新订购/对齐而不是?
结构是C编程语言中的复合数据结构; 它们由诸如int和指针之类的基元组成,它们以相邻的方式放置在存储器中,例如阵列.
我的问题是,结构本身是由什么构成的?它们是一种阵列吗?例如,哈希表可以实现为链表列表.以类似的方式,什么是实现的结构?如果需要,请在x86汇编级别解释.谢谢.