【问题标题】:Callback to multiple functions in C回调 C 中的多个函数
【发布时间】:2019-09-18 22:18:54
【问题描述】:

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

【问题讨论】:

    标签: c user-interface callback


    【解决方案1】:

    使用函数指针。

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-17
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多