【C知识点】函数地址

简介: 【C知识点】函数地址

函数地址

函数是空间,函数名就是这个空间地址的常量值的代号。

所以我们可以利用数组,来保存函数的地址,通过数组对函数进行访问。

普通函数调用


我们可以通过 switch 来对函数进行调用,但是这存在的问题就是如果我想要对增加删除或修改函数名称,我都要去 switch 里面进行修改,非常的不方便。

void test01()
{
  int day;
  printf("input day:");
  scanf("%d", &day);
  switch (day)
  {
  case 1:
    do_music();
    break;
  case 2:
    do_game();
    break;
  case 3:
    do_book();
    break;
  default:
    break;
  }
}


数组函数

所以我们可以定义一个数组空间,保存函数的地址,每次调用时直接调用数组即可,这样对于函数的设置以及调用是分开来的。我们调用的函数就可以固定的一段代码,而对于函数的设置可以通过数组保存,在其它地方就可以进行修改,非常的方便。

void test02()
{
  //定义一个数组空间,保存key,每把钥匙都是函数行为
  void (*events[3])(void);
  //设置每天做的事情
  events[0] = do_music;
  events[1] = do_game;
  events[2] = do_book;
  //循环每天做的事情
  for (int i = 0; i < 3; i++)
    events[i]();
}


目录
相关文章
|
存储
【C进阶】回调函数(指针进阶2,详解,小白必看)(上)
【C进阶】回调函数(指针进阶2,详解,小白必看)(上)
|
1月前
|
C语言
学习——理解指针(4)(指针学习最后一节)
学习——理解指针(4)(指针学习最后一节)
|
6月前
|
编译器 C++
【C++进阶】引用 & 函数提高
【C++进阶】引用 & 函数提高
|
索引
【C进阶】回调函数(指针进阶2,详解,小白必看)(下)
【C进阶】回调函数(指针进阶2,详解,小白必看)(下)
|
算法 程序员 编译器
『C语言从入门到进阶』第 ③ 期 - 函数
『C语言从入门到进阶』第 ③ 期 - 函数
88 0
|
C语言
C · 进阶 | 指针和数组超细节笔试题解析
- 指针和数组结合在一起历来是`C语言`里面的难点,细节多如牛毛,今天博主就专门出一篇文章领略一下,专门总结了几乎所有细节部分,让我们开启沉浸式练习 - 本系列分两个板块,前半部分直接上题,后半部分会有相应的解析
480 0
C · 进阶 | 指针和数组超细节笔试题解析
函数进阶
函数根据 **有没有参数** 以及 **有没有返回值**,可以 **相互组合**,一共有 **4 种** 组合形式 1. 无参数,无返回值 2. 无参数,有返回值 3. 有参数,无返回值 4. 有参数,有返回值
|
C语言
【C】指针进阶补充
【C】指针进阶 回调函数,qsort函数,冒泡排序
56 0
【C】指针进阶补充