使用常量可以节省内存吗?
Does using constants save memory
我目前正在重构我为一所大学项目编写的类。
该课程将内容绘制到连接到Arduino Nano的TFT显示器上, 我想我不需要解释为什么内存在微处理器上很少见, 特别是在Arduino Nanos上。
该类在屏幕上绘制一个 GUI,在重构之前,我曾经为所有与绘图相关的内容设置幻数,例如与屏幕边缘的偏移量。
我能够重构这种东西
//constants for screen offsets
const int PROGMEM _titleHeight = 30;
const int PROGMEM _leftOffset = 22;
const int PROGMEM _charHeight = 15;
... more stuff here, you get the point
然后我想知道"这真的可以节省任何内存吗"?
我的意思是,最后我更多地使用 3 个整数单元格来实现相同的目标,这是 96 位"浪费"的空间。
除了它更容易阅读并且无论如何我将这些值塞入 PROGMEM 之外,
通常使用常量在优化方面是否可以节省任何空间?
编辑:如果这些值短,指向它们的指针会不是 32 位,从而浪费 16 位吗?我弄错了吗?
即使在调试版本中,老派程序员也可以节省资源的一种方法是使用枚举:
enum {
_titleHeight = 30,
_leftOffset = 22,
_charHeight = 15
};
现在这些值肯定没有使用内存。 但是,优化编译器应得出与const int
值相同的最终结果。
确定的唯一方法是尝试并测量。
相关文章:
- 将字符串存储在c++中的稳定内存中
- 我应该以字符形式存储数字以节省内存吗?
- C++ 11 通过在类声明中使用指针来节省内存
- 使用常量可以节省内存吗?
- 使用动态库节省内存
- 用于查找范围重叠的更节省内存的算法
- C++:按常用基数对整数进行分组以节省内存
- 通过使用位数组而不是 int 来节省字典的内存
- 如何对上传程序服务器进行速率限制以节省内存
- 使用“std::shared_ptr”时可有效节省内存/编程
- 为什么指针在需要创建指向变量的指针时节省内存
- C++ 块代码在函数完成之前节省内存
- 我是否需要在C++中显式删除数组以节省内存
- 缩小 std::vector 的大小以适应其实际数据以节省内存使用?vec.swap() 在 MSVC 中不起作用?
- 一次只实例化一组类中的一个类,以节省内存
- 静态方法节省内存?(非托管代码)
- 为什么c++仍然不使用vector的共享资源来节省内存
- 指针和重复周期 - 我正在尝试节省内存
- 当许多unordered_map<字符串、双>具有与键完全相同的字符串集时如何节省内存
- Qt 5 dds支持,节省内存和改善渲染