【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]();
}


目录
相关文章
|
7月前
|
C++
【C++】bind绑定包装器全解(代码演示,例题演示)
【C++】bind绑定包装器全解(代码演示,例题演示)
|
5月前
|
运维 监控 网络协议
IP 地址是什么,有什么用,通俗易懂答案?
**IP地址是互联网上设备的唯一标识,分为IPv4(32位,如192.168.1.1)和IPv6(128位,如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。IP地址用于定位设备、数据包传递、网络安全和管理。分为公有(全球唯一)和私有(局域网内使用)IP,以及动态(DHCP分配)和静态(固定不变)IP。IP管理由ICANN和区域机构负责。了解IP地址基础知识对网络理解和故障排查至关重要。**
489 3
|
7月前
|
前端开发 数据处理
【前端学习】—多种方式实现数组拍平(十一)
【前端学习】—多种方式实现数组拍平(十一)
《C++避坑神器·十一》地址和地址的地址赋值问题
《C++避坑神器·十一》地址和地址的地址赋值问题
80 0
字符串的进阶练习案例(接上一节)
字符串的进阶练习案例(接上一节)
53 0
【进阶C语言】静态版通讯录的实现(详细讲解+全部源码)(二)
【进阶C语言】静态版通讯录的实现(详细讲解+全部源码)(二)
|
算法 程序员 编译器
『C语言从入门到进阶』第 ③ 期 - 函数
『C语言从入门到进阶』第 ③ 期 - 函数
91 0
|
C语言
【C】指针进阶补充
【C】指针进阶 回调函数,qsort函数,冒泡排序
59 0
【C】指针进阶补充