【发布时间】:2012-05-20 02:12:56
【问题描述】:
字符数组是全局定义的,同名结构是在函数中定义的。为什么 sizeof 运算符为 c & c++ 返回不同的值?
char S[13];
void fun()
{
struct S
{
int v;
};
int v1 = sizeof(S);
}
// 在 C++ 中返回 4,在 C 中返回 13
【问题讨论】:
-
@OliCharlesworth:在我的编译器上编译得很好
-
@Ashwyn - 你的编译器在
struct S的声明之后编译时没有;? -
@OliCharlesworth:哎呀对不起!忘记写了,其实是我写的代码,而不是复制粘贴!
-
我认为一般来说最好的答案是“因为 C 和 C++ 是不同的语言。”
-
您可能还对stackoverflow.com/questions/2038200/… 感兴趣,以了解 C 和 C++ 之间的其他无声差异。