gpt4 book ai didi

c++ - 对象地址是否保证是其类型对齐的倍数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:55 25 4
gpt4 key购买 nike

对齐方式 已定义 in the Standard如下:

An alignment is an implementation-defined integer value representing the number of bytes between successive addresses at which a given object can be allocated.

然而,这并不意味着这些地址是对齐值的倍数。例如,地址为 0x010x09 的两个 double 对象满足上述定义。

是否以某种方式保证对象的地址是其类型对齐值的倍数?

最佳答案

不,不是。

只能保证线性关系比例关系是有保证的,但即便如此,对齐要求也可以在结构封装中放宽,例如

/*packed*/ struct s {double a; char b; double c;);

请注意,nullptr 甚至不必是零内存字节、虚拟内存或其他。

关于c++ - 对象地址是否保证是其类型对齐的倍数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51356780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com