我目前正在重构我为大学项目撰写的课程。
该课程将材料绘制到连接到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位吗?我弄错了吗?答案 0 :(得分:5)
即使在调试版本中,老式程序员节省资源的一种方法是使用枚举:
enum {
_titleHeight = 30,
_leftOffset = 22,
_charHeight = 15
};
现在这些值肯定没有使用内存。但是,优化编译器应使用const int
值得出相同的最终结果。
唯一可以确定的方法是尝试并测量。