具有C++函数的结构的大小

che*_*tan 10 c++ sizeof

我知道如何sizeof计算仅包含数据成员的结构的大小.但是,例如,如果我在C++中具有以下结构

struct MyAdd()
{
    int AddInt()
    {
        int a=5;
        int b=5;
        return a+b;
    }
    int c;
    int d;
};
Run Code Online (Sandbox Code Playgroud)

所以在使用sizeof函数时它还会返回在函数内声明的变量的大小,AddInt还是只考虑成员变量(cd)?

Ser*_* K. 21

它只会考虑成员变量.

此外,非虚拟成员函数对大小没有贡献,struct因为它们不需要任何运行时支持.

要理解为什么会这样,想象一下从编译器的角度来看这个代码与这个伪代码非常相似:

struct MyAdd
{
  int c;
  int d;
};

int MyAdd_AddInt(MyAdd* this)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)