我可以使用指向静态函数的函数指针,例如指向非静态函数的函数指针吗?

问题描述

我可以使用指向静态函数的指针,例如指向非静态函数的指针吗?

让我说:

void (*fp_some_event_handler)(void);

void KeyEventHandler(void){
    // not static
}

static void KeyEventHandlerStatic(void){
    // static
}

我可以像使用非静态函数一样使用静态函数指针吗?

void main() {

    // Now I have something like this
    fp_some_event_handler = KeyEventHandler;
    
    // and I want to change some function to static and end with this
    fp_some_event_handler = KeyEventHandlerStatic;
  
}

解决方法

函数static是否不是其类型的一部分,而是存储类说明符

因此,您可以将示例代码中的两个函数之一分配给函数指针fp_some_event_handler