首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在头文件和c-file中声明函数指针?

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

Stack Overflow用户
提问于 2011-12-19 22:22:19
回答 2查看 30.6K关注 0票数 19

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

它看起来是这样的:

void (*current_menu)(int);

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

EN

回答 2

Stack Overflow用户

发布于 2011-12-19 22:34:06

typedef与函数指针一起使用通常很有帮助,因此您可以将类型命名为描述性的名称:

typedef void (*MenuFunction)(int);

然后您将有一个这种类型的全局变量,可能在menus.c中,并在menus.h中声明(使用extern):

static void my_first_menu_function(int x)
{
  printf("the menu function got %d\n", x);
}

MenuFunction current_menu = my_first_menu_function;

然后,您可以从main.c执行以下操作:

#include "menu.h"

current_menu(4711);

调用current_menu当前指向的任何函数。

票数 8
EN

Stack Overflow用户

发布于 2011-12-19 22:24:56

指针函数本身没有函数定义。它只不过是指向一个类型的指针,该类型由函数的返回类型和参数列表指定。您需要做的是定义一个具有相同参数列表和返回类型的函数,然后使用您的指针函数保存该函数的地址。然后,您可以通过指针调用函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8562694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档