【发布时间】:2011-02-07 14:08:35
【问题描述】:
sizeof 运算符在 C 或 C++ 中是否可能返回 0(零)?如果可能,从标准的角度来看是否正确?
【问题讨论】:
-
我遇到了这个:msdn.microsoft.com/en-us/library/4s7x1k91(VS.71).aspx 声明 sizeof 永远不能返回 0 但我不确定这是否只是 Microsoft 实现约束(并且似乎是 C++ 特定的)。
-
我想知道抽象基类的大小是否可以是
0(不可能声明它们的实例,这样反对就不会适用) -
如果您需要 C++ 中结构的真实大小(以区分真正的空结构与其中包含 char 的结构),您可以使用
std::is_empty_v<T> ? 0 : sizeof(T);打败 sizeof 的谎言。