gpt4 book ai didi

c++11 - alignof(char) == 1?

转载 作者:行者123 更新时间:2023-12-04 12:56:06 24 4
gpt4 key购买 nike

sizeof(char) 始终为 1,在我看来,类型的对齐要求永远不会大于其大小。引用即将发布的 C++11 标准 (3.11):

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



因此,如果类型的对齐大于其大小,则无法创建连续元素之间没有空白空间的数组。

这种解释是否正确,因此 alignof(char) == 1 总是?

最佳答案

你是对的。

您可以从 推断C++ 数组的“紧凑”(无填充)布局 任何可以定义这种类型的数组的对象类型都必须有一个与其大小的除数的对齐方式。

特别是这种大小为1的类型的对齐方式必须是1。

特别是char的对齐方式, signed char , 和 unsigned char是 1。

OTOH,您无法通过此参数推断出任何有关抽象类对齐的信息。

关于c++11 - alignof(char) == 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7191650/

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