C对象的存储布局大多没有定义。据我所知,仅对struct成员和数组元素,布局是定义的。
有趣的是,对于函数参数,C11标准显式地提到没有定义布局:
参数存储的布局未指定。(C11§6.9.1P.9)
我想知道标准是否也显式地定义了对于其他对象,例如具有自动存储持续时间的对象,布局是未定义的。有人知道这事吗?我在标准里找不到任何关于这个的东西。
有内部或外部链接的对象呢?
发布于 2018-07-03 20:12:37
不,我不认为有明确提到的事实,我们不能知道任何有关的对象布局。实际上,C标准甚至更激进,甚至不允许对两个变量进行<运算符的比较,这两个变量不是同一个数组的元素,也不能在指向不属于同一数组的对象的指针之间进行算术。
因此,“布局”的整个问题甚至不能用C标准提供的术语来表述。
https://stackoverflow.com/questions/51160276
复制相似问题