繁体   English   中英

C中多个函数的回调

Callback to multiple functions in C

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试在 C(用于嵌入式应用程序)中编写代码,其中会有事件回调(由按下按钮引起)调用不同的函数,具体取决于当前显示的 GUI 屏幕。
理想情况下,我想“定义” function 像:keyXPressed() 多次并在代码的不同部分编写不同的操作(例如在 Screen1 上执行此操作,在 Screen2 上执行此操作),因此单个回调将始终引用一个目前开启。 我知道函数的多个定义可能不是这种方式,并且可能会涉及一些面向对象的技术。
以简单优雅的方式实现此类功能的方法是什么?

1 个回复

使用 function 指针。

void (*keyPressed)(screen *);

void keyXPressed(screen *s) {
    // code here
}
void keyYPressed(screen *s) {
    // code here
}

然后你可以分配keyPressed = keyXPressed; keyPressed = keyYPressed; , 并调用keyPressed(screen1);

3 setState回调中的多个功能不起作用

我有以下代码,要在状态更新后执行2个函数: 但是,仅执行最后一个功能。 有人知道我在做什么错吗? 可能是因为这两个函数都在更改状态,而实际上仅保存了lats函数的状态吗? 在那种情况下,如果我需要两个功能来更新状态,我将如何解决呢? ...

2019-12-14 18:31:22 0 29   reactjs
4 在多个页面中具有相同功能名称的Javascript回调

我的目标是在具有相同类名的相同输入(即对于许多页面(如创建和编辑视图等)自动完成的客户端名称)中,在多个页面/视图中执行相同上下文的自动完成功能。 由于我需要在每个页面中调用jquery的autocomplete() ,因此我写了 Views \\ Shared_Layout.csh ...

5 多个功能后的jQuery回调

我已经在项目中分离了HTML文件,并将其加载到主页中。 此函数是异步的,因此在加载这三个片段之后,我需要一个回调语句。 我只知道如何为1个函数而不是全部3个函数使用回调。这是我想到的解决方法,但是我敢肯定必须有更好的方法。 ...

6 如何运行多个功能然后执行回调

我再一次“沉迷”于javascript和jQuery的黑暗艺术中,而对我实际上在做什么却没有太多线索。 我所知道的是,我设法通过抄写其他代码的一部分并对其进行了一些修改来使我的代码起作用,并且经过大量的咒骂,它以某种方式工作了。 下面是我的一段代码,它可以正确构建并显示一个动态选择框,其 ...

7 C ++中的回调计时器功能

我正在尝试在C ++中实现一个回调计时器函数,该函数应该在超时后执行回调。 我正在侦听套接字,然后在其上等待消息。 因此,如果我有类似getMessages()的东西,并且想在其中传递计时器函数作为参数。 因此,如何实现在收到消息后启动计时器,如果在下一条消息到达之前存在超时,则会发生回调 ...

8 如何在C的多个程序包中重用Go回调?

有没有一种方法可以构建Go + C应用程序: 从主程序包X导入程序包Y和Z。 包M导出go回调F。 软件包X和Y都使用随附的C文件构建,都希望从C源代码调用F。 一般来说,我试图弄清楚如何从用于构建最终应用程序的其他模块中的随附C文件调用回调。 我不知道如何实 ...

2015-03-15 03:07:02 3 488   go/ cgo
9 如何处理ASP.Net 4.0 C#中的多个回调? 例

我必须在一页中处理两个回调,一个在按钮事件上,另一个在列表中。 当单击按钮“ showDate”时,它显示时间;当单击按钮“ btnlookup”时,它显示列表框项目的相应值。.下面是我的代码HTML和.cs文件 .cs文件的代码 注释的代码用于第二个回调事件,此代码中的问 ...

10 C ++多个回调函数

我有一个dll,它要求我为其设置一个回调函数(实际上是相机sdk,它在收到图片时会回调我的函数)。 我想拥有多个(用户输入)相机,但我不能。 因为我应该使未知数量的回调函数。 最简单的方法是制作一个具有回调函数的类(相机)。 但我无法将类成员的指针传递给dll(它仅接受(void)( ...

暂无
暂无

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

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