c++ - 如何使用带有函数作为参数的可变参数函数并将它们传递给指针
问题描述
我将函数传递给函数指针
void tact::setFunctions(void short_press_function(void), void release_press_function(void), void long_press_function(void))
{
short_ptr = short_press_function;
release_ptr = release_press_function;
long_ptr = long_press_function;
}
但是这 3 个指针并不总是在我的程序中使用。我想使用可变参数函数来传递可变数量的函数,具体取决于我打开的功能。
void tact::setFunctions(void args(), ...)
{
va_list ap;
va_start(ap, args);
#if SHORT_BUTTON_PRESS_CONFIG
short_ptr = va_arg(ap, void (*)());
#endif
#if BUTTON_RELEASE_CONFIG
release_ptr = va_arg(ap, void (*)());
#endif
#if LONG_BUTTON_PRESS_CONFIG
long_ptr = va_arg(ap, void (*)());
#endif
va_end(ap);
}
在这个新函数中,我没有正确理解如何使用 va_arg()。我基本上只是想将参数的地址传递给我的指针。如何?谢谢!
解决方案
推荐阅读
- rx-java - 如何使用 RxScala/RxJava 从单个计算步骤构建 Observable?
- c - 为什么 Arduino LCD 的代码会弄乱步进电机的代码?
- java - 程序似乎忽略了 synchronized() 行
- php - 加入足球/足球网站的表格和数据
- graphql-js - 不能使用重复的“graphql”模块
- ubuntu-18.04 - Ubuntu 磁盘空间
- javascript - 在数据表中的图像下方添加页面标题
- asp.net-core - web api asp core : 未声明纯文本文档的字符编码
- python - 如何检查输入是否在矩阵的第一列内
- sockets - 我需要 2 个插座来进行此设置还是一个就可以了?