我的问题更像是:为什么编译器“认为” “ PROGMEM 变量”与“普通变量”相同?是因为PROGMEM 关键字“只是”一个宏,仅此而已?还是出于其他原因?有什么解决方法..?
问题演示:
让我们考虑下面的例子:
class object {
public:
object(int* variable);
object(int* variable PROGMEM);
};
它抛出error: 'object::object(int*)' cannot be overloaded
好像它是一样的。
sketch_jul31a:4:3: error: 'object::object(int*)' cannot be overloaded
object(int* variable PROGMEM)
^~~~~~
sketch_jul31a:3:3: error: with 'object::object(int*)'
object(int* variable)
^~~~~~
exit status 1
'object::object(int*)' cannot be overloaded
结局:
不久前我在开发图书馆时遇到了这个问题,我在arduino-forum上问过这个问题,但我没有任何答案,所以我想在很长一段时间后再次问这个问题,在这里.