C++ 14 intro.cpp 状态:
a most derived object shall have a non-zero size and shall occupy one or more bytes of storage
为什么要声明
non-zero size
和
one or more bytes of storage
什么时候可以有一个没有另一个?
最佳答案
这两个部分实际上在说不同的事情。
a most derived object shall have a non-zero size
这意味着使用对象的 sizeof
将返回一个非零大小。
a most derived object ... shall occupy one or more bytes of storage
这意味着该对象占用了一些字节(一个或多个)的内存。
如果第二条语句不存在,则可能意味着 sizeof
将报告非零大小,但该对象实际上可能不使用任何内存。
如果没有第一条语句,它可能意味着 sizeof
可以返回零,但该对象仍会占用内存空间。
两者都是必需的,并且彼此正交。
关于c++ - 一个对象什么时候可以有一个但不是两个非零大小,一个或多个字节的存储空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45125717/