具有函数的类的c sizeof()

我有一个C问题。
我写了以下类:

class c
{
    int f(int x, int y){ return x; }
};

c类的sizeof()返回“1”。
我真的不明白为什么它返回1。

试着更好地了解发生了什么,我增加了另一个功能:

class c
{
     int f(int x, int y){ return x; }
     int g(int x, int y){ return x; }
};

现在以下真的让我很困惑! sizeof(c)仍然是1(!?!?!?!)。
所以我猜这个函数不会改变类的大小,但是为什么?为什么大小是1?它是编译器具体吗?

谢谢! 🙂

最佳答案
该类不包含数据成员,因此它是空的。标准要求每个班级至少有1名,所以这就是你所得到的。 (成员函数不是物理上的“内部”类,它们实际上只是具有隐藏参数,命名空间和访问控制的自由函数。)

转载注明原文:具有函数的类的c sizeof() - 代码日志