【发布时间】:2017-01-27 21:10:28
【问题描述】:
我已经定义了一个指向函数的指针数组,直接初始化它,然后使用它,像这样:
typedef void(*offFunction)(void);
offFunction offFunctionList[2] = {off_1, off_2};
:
offFunctionList[0]();
由于我需要动态更改功能,我尝试了
offFunctionList[0] = off_1;
但这给了我编译器错误消息
'offFunctionList' does not name a type
我发现这个错误的唯一解释围绕(词法)可见性,但这不是问题,因为即使赋值是声明之后的下一条语句,也会出现错误......
当我从this description of function pointers复制东西时也会弹出错误,所以我很茫然。
怎么了?
【问题讨论】:
-
MCVE,拜托。什么是 off_t?作业在哪里调用?等等……
-
我尝试了您的代码,它似乎工作正常,前提是实际定义了 off_1 和 off_2 并且分配是在函数内部完成的。你能提供一个完整的例子吗?
-
@GercoDries 非常感谢您的提示-我确实将作业放在定义区域中-我真傻!你想把你的评论变成一个被接受的答案吗?谢谢,诺比
标签: c++ arrays function pointers arduino