gpt4 book ai didi

c++ - sizeof(void()) 是合法的表达式吗?

转载 作者:IT老高 更新时间:2023-10-28 14:00:26 27 4
gpt4 key购买 nike

来自 [5.3.3/1] ,我发现:

The sizeof operator shall not be applied to an expression that has function or incomplete type

来自 [3.9/5]我发现:

Incompletely-defined object types and cv void are incomplete types

无论如何,对于 sizeof 不评估它的操作数,我会说 sizeof(void()) 是一个合法的表达式(实际上是 GCC 编译它和结果是1)。
另一边,来自 here , 在讨论 sizeof 时没有提到 void,既没有提到大小为 1 的类型,也没有在具有 实现定义的列表中 大小。

因此问题是:sizeof(void()) 是否合法?
是否保证 size 等于 1?
或者它是导致 UB 的合法表达,仅此而已?

最佳答案

void() 是一个函数类型(它是一个不带参数也不返回任何内容的函数),所以它在 sizeof() 中不是一个有效的类型。

关于c++ - sizeof(void()) 是合法的表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39278200/

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