gpt4 book ai didi

c++ - 为什么对象的大小为零

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:19 25 4
gpt4 key购买 nike

我得到的对象的大小为零,这是不应该的。请解释一下为什么编译器给出这个答案的概念?

  #include<iostream>
using namespace std;

class xxx{
public: int a[]; // Why this line is not giving error.
};

int main(int argc, char *argv[])
{
xxx x1;
cout<<sizeof(x1); //Q=Why this code is not giving error.
return 0;
}

最佳答案

正如其他人所说,C++ 中的对象的大小永远不能为 0。

但是,由于代码首先不是有效的 C++(数组不能为空),所以这是无关紧要的。编译器只做它想做的事。

带有 -pedantic 的 GCC 拒绝此代码。 MSVC 至少会发出警告。我的 clang++ 版本带有 -pedantic ICE,但确实会在此之前发出警告。

关于c++ - 为什么对象的大小为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10348606/

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