首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >alignof(T*)对于所有可能的类型都是相同的吗?那么sizeof(T*)呢?

alignof(T*)对于所有可能的类型都是相同的吗?那么sizeof(T*)呢?
EN

Stack Overflow用户
提问于 2020-05-05 18:04:43
回答 1查看 122关注 0票数 3

对于所有可能的类型Talignof(T*)是否都是相同的值?那sizeof(T*)呢?请根据标准允许/指定的内容回答,而不是根据不同编译器中的当前情况回答。

EN

回答 1

Stack Overflow用户

发布于 2020-05-05 19:37:47

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

从一个指向函数的有效指针转换为另一个有效指针,然后再转换回来,可以保证生成原始值。因此,必须有相同的可表示的最小数量的值,即任何给定的指向函数类型的指针的有效地址的最大数量,这给所有指向函数类型的指针的大小提供了下限。

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

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

但即便如此,一些指针类型可能会超过它所需的可表示值的数量。这些额外的比特就一定不会被使用。这是不太实际的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61610545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档