相关疑难解决方法(0)

C中的结构内存布局

我有一个C#背景.我非常喜欢像C这样的低级语言.

在C#中,struct默认情况下由编译器布局内存.编译器可以隐式地重新排序数据字段或填充字段之间的附加位.因此,我必须指定一些特殊属性来覆盖此行为以获得精确布局.

AFAIK,C struct默认情况下不重新排序或对齐a的内存布局.但是,我听说有一个很难找到的例外.

什么是C的内存布局行为?什么应该重新订购/对齐而不是?

c struct memory-layout

76
推荐指数
3
解决办法
9万
查看次数

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

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

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

c x86 assembly struct

6
推荐指数
1
解决办法
752
查看次数

标签 统计

c ×2

struct ×2

assembly ×1

memory-layout ×1

x86 ×1