gpt4 book ai didi

c++ - alignof(T*) 对于所有可能的类型都相同吗? sizeof(T*) 呢?

转载 作者:行者123 更新时间:2023-12-01 14:20:18 25 4
gpt4 key购买 nike

alignof(T*)对于所有可能的类型 T 是相同的值?怎么样sizeof(T*) ?
请根据标准允许/指定的内容而不是不同编译器的当前情况进行回答。

最佳答案

该标准对指针的大小和对齐没有太多说明,因此它们不受语言的严格限制。

从一个有效的指针到函数的转换到另一个并返回保证产生原始值。因此,对于任何给定的指向函数类型的指针,必须有相同的最小数量的值必须是可表示的最大有效地址数,这给出了所有指向函数类型的指针的大小的下限。

对象类型之间的转换具有类似的保证,但仅适用于原始指向类型具有更严格或相等对齐要求的情况。因此,指向高度对齐类型的对象指针需要较少的可表示值。如果对齐足够高,那么理论上该类型可以更小。

在允许在指向 void 的指针和指向函数的指针之间进行转换(有条件支持)的系统上,指向函数的指针和指向 void 的指针的可表示值的最小数量必须相同。

但即便如此,某些指针类型可能会大于它需要的可表示值的数量。那些额外的位肯定是未使用的。这不会很实用。

关于c++ - alignof(T*) 对于所有可能的类型都相同吗? sizeof(T*) 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61610545/

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