博主现在本就对函数值传递头疼,现在又多了函数传递和回调。。
废话不多说。
在一个一般的涉及函数的程序中,我们可以直接用函数名对函数进行调用。
#include<stdio.h>
void func(int level)
{
printf("我是%d级原神牢玩家", level);
}
int main()
{
int level;
scanf_s("%d",&level);
func(level);
return 0;
}
现在,我们使用函数指针完成上面的函数:
#include<stdio.h>
void func(int level)
{
printf("我是%d级原神牢玩家\n", level);
}
int main()
{
int level;
scanf_s("%d",&level);
void (*pfunc)(int);//定义函数指针
pfunc = func;//将指针指向目标函数
//在这里调用两次,分别是C++和C的使用方式
pfunc(level);//C++
(*pfunc)(level);//C
return 0;
}
下面再来介绍回调函数的简单使用。
回调函数的目的是把一个函数嵌入到另一个函数中。
#include<stdio.h>、
//调用函数
void func(void(*character)())
{
printf("我非常喜欢原神中的角色\n");
//由于不同的玩家喜欢不同的角色,用回调函数表达不同玩家对角色的喜爱
character();
}
//回调函数
void kq()
{
printf("刻晴,我真的好喜欢你啊,我要当你的狗");
}
void gy()
{
printf("甘雨,我真的好喜欢你啊,我要当你的狗");
}
void fnn()
{
printf("芙宁娜,我真的好喜欢你啊,我要当你的狗");
}
int main()
{
//比如我很喜欢芙宁娜。
func(fnn);
return 0;
}
以上的回调没有任何参数,其实还可以给回调函数传递参数,从调用函数或外部传入,等博主研究明白再更新。