gpt4 book ai didi

c++ - 什么在 C++ 中使用更多内存?一个 2 个整数或 2 个函数?

转载 作者:太空狗 更新时间:2023-10-29 20:40:21 25 4
gpt4 key购买 nike

我正在为 Nintendo DS(具有 4MB 内存)使用 C++ 编写代码。我有一个按钮类,用于存储 x、y 位置和长度等数据。以下哪一项会占用更少的内存?

.

方法一,类变量length、x、y、halfPoint

Button::Button(int setX, int setY, int setLength)
{
x = setX;
y = setY;
length = setLength;
halfPoint = length/2;
}
//access variable with buttonName.halfPoint

方法二,类变量length,x和y

Button::Button(int setX, int setY, int length)
{
x = setX;
y = setY;
length = setLength;
}

int Button::getHalfPoint()
{
return length/2;
}
//access variable with buttonName.getHalfPoint()

感谢任何帮助。 (并且在实际代码中我计算了一个比半点复杂得多的位置)

最佳答案

如果有很多ButtongetHalfPoint()方法会占用较少的空间。为什么?因为成员函数实际上只是由编译器作为常规函数实现的,带有指向对象的指针的隐含第一个参数。所以你的函数被编译器重写为:

int getHalfPoint(Button* this)
{
return this->length/2;
}

(由于名称修改,这有点复杂,但这足以解释。)

但是,您应该仔细考虑必须完成的额外计算量,以避免存储额外的 4 个字节。正如 Cameron 提到的,编译器可能会为对象添加额外的空间,具体取决于架构(我认为这很可能发生在 RISC 架构上)。

关于c++ - 什么在 C++ 中使用更多内存?一个 2 个整数或 2 个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24498642/

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