gpt4 book ai didi

c++ - 数据类型范围作为节省内存的措施是否重要?

转载 作者:行者123 更新时间:2023-11-30 01:52:58 25 4
gpt4 key购买 nike

我总是被教导根据类/方法/函数/成员/变量/你有什么的具体需要使用适当的数据类型。也就是说,这还重要吗?

假设,如果我有一个类,其数据成员永远不会为负且永远不会超过 unsigned char 的最大值,则将其存储为 unsigned char (1 字节)与 int(4 字节)相比,由于隐式类型提升/降级、内部表示、寄存器大小和经常引用的“CPU 在与int"?

例子:

class Foo {
public:
Foo() : _status(0) { /* DO NOTHING */ }
void AddTo(unsigned char value) {
if(std::numeric_limits<unsigned char>::max() - _stat < value) {
value = std::numeric_limits<unsigned char>::max() - _status;
}
_status += value;
}

void Increment() {
if(_status == std::numeric_limits<unsigned char>::max()) return;
++_status;
}
private:
unsigned char _status;
};

最佳答案

通常使用“大小合适”的类型的一个主要影响是你和其他人在它上面浪费了很多时间。

如果您存储了不计其数的值,例如一张非常大的图片,或者如果您绝对需要 64 位范围,那么可以肯定的是,在这种情况下,适当调整大小是有意义的。

但是,将适当调整大小作为一般准则不会产生显着的 yield ,反而会带来很多痛苦。

权威论据:创建该语言的 Bjarne Stroustrup 通常只使用几种类型,例如int 表示整数。

关于c++ - 数据类型范围作为节省内存的措施是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23706514/

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