我收到了错误:
error: 'void*' is not a pointer-to-object type
以下代码:
Button config_b1 = Button("b1");
Button config_b2 = Button("b2");
Button config_b3 = Button("b3");
const void *const buttons[3] PROGMEM = {
&config_b1, &config_b2, &config_b3
};
在某些功能中:
(Button)*buttons[1]->setText("Foo");
投射到按钮失败。
这只是一个简化的例子。数组“按钮”将具有不同类型的对象,因此我需要将其初始化为void,然后在函数内部转换为正确的类型。
答案 0 :(得分:4)
我认为这是一个简单的优先级错误,您需要
((Button *) buttons[1])->setText("foo");
顺便问一下,你确定这是C吗?这种调用看起来真的像C ++(它可能是C,但在大多数情况下你需要一个明确的this
等价物。)