c - 如何在头文件和c文件中声明函数指针?

标签 c function pointers header prototype-programming

我对如何在头文件中声明函数指针感到有点困惑。 我想在 main 和一个名为 menus.c 的文件中使用它,并在我假设的 menus.h 中声明它。 我们要初始化指向某个函数。

看起来像这样:

void (*current_menu)(int);

我们在 menus.c、menus.h 和 main 中写什么?

最佳答案

函数指针仍然是一个指针,这意味着它仍然是一个变量。

如果您希望一个变量在多个源文件中可见,最简单的解决方案是在 header 中将其声明为 extern,并在其他地方进行定义。

在标题中:

extern void (*current_menu)(int);

在一个源文件中:

void (*current_menu)(int) = &the_func_i_want;

关于c - 如何在头文件和c文件中声明函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8562694/

相关文章:

c++ - C++中使用指针调用函数

c - 为什么我不能通过它的指针访问这个结构?

c - 自由矩阵的动态矩阵问题

c - 需要帮助了解有关换行符的 C 代码

python - 函数定义 : Matching Area Codes to Phone Numbers

c++ - 如何从函数中检索错误?

c - dup2 导致程序停止

c++ - C/C++ 中具有溢出保护的高效增值

javascript - 有人可以帮我编写和理解部分应用程序模式吗?

c++ - 将 char[ ][ ] 的地址复制到 C 字符串