✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📚专栏地址:C/C++知识点
📣专栏定位:整理一下 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]();
}