【发布时间】:2010-10-03 10:10:01
【问题描述】:
可能的重复:
Empty class in C++
What is the size of an empty struct in C?
我在某处读到 C++ 中空结构的大小为 1。所以我想验证它。
不幸的是,我将它保存为 C 文件并使用了 <stdio.h> 标头,我很惊讶地看到输出。是 0。
意思是
struct Empty {
};
int main(void)
{
printf("%d",(int)sizeof(Empty));
}
编译为 C 文件时打印 0,编译为 C++ 文件时打印 1。我想知道原因。我读到sizeof C++ 中的空结构不为零,因为如果大小为0,那么该类的两个对象将具有相同的地址,这是不可能的。我哪里错了?
【问题讨论】:
-
-1 不,您没有将其编译为
C。 -
@Ninad:你试过this吗?
-
当您在此语言级别提问时,请提供编译器名称和版本。
-
-1 我也是。 sizeof 无法编译