繁体   English   中英

C ++将方法的指针数组作为参数传递给方法

[英]C++ passing array of pointers of methods to a method as argument

我有以下typedef:

typedef void (*Subs)(uint8_t button);

例如此数组:

 const Subs settings_sub[] = {Settings_SVA, BackToRoot};
 const uint8_t settings_size = 2;

其中“ Settings_SVA,BackToRoot”是类型的方法:

void Method_name(uint8_t button){}

现在我的问题是另一种方法,该方法使用这些数组并简单地循环遍历它们:

void MoveThroughItems(uint8_t button, uint8_t counter, uint8_t limit, ??? subitems) {}

我不知道正确放置“ ???”的位置 用于子项,即上述数组。

当前,我使用Subs subitems []导致错误:

invalid conversion from 'void (* const*)(uint8_t)' to 'void (**)(uint8_t)

并将“ void(* const *)(uint8_t)”用作类型会导致:

error: expected ',' or '...' before 'subitems'
error: 'subitems' was not declared in this scope

我被困在这里,也许我错过了一些简单的事情?

您需要const - const Subs subitems[]因为您定义了const Subs settings_sub[] = {Settings_SVA, BackToRoot};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM