网站建设黄荣,大连市住房与城乡建设部网站,中小型网站建设服务,济南做网站公司电话目录
回调函数
回调函数的应用
i#xff0c;简化代码逻辑
ii#xff0c;实现上下机之间的通讯 回调函数 回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的指针#xff08;地址#xff09;作为参数传递给另⼀个函数#xff0c;当这个指针被用来调用其所指向… 目录
回调函数
回调函数的应用
i简化代码逻辑
ii实现上下机之间的通讯 回调函数 回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的指针地址作为参数传递给另⼀个函数当这个指针被用来调用其所指向的函数时被调用的函数就是回调函数。 回调函数不是由该函数的实现方直接调用而是在特定的事件或条件发生时由另外的⼀方调用的用于对该事件或条件进行响应。 回调函数的应用
i简化代码逻辑
//使⽤回调函数改造前
#include stdio.h
int add(int a, int b)
{return a b;
}
int sub(int a, int b)
{return a - b;
}
int mul(int a, int b)
{return a * b;
}
int div(int a, int b)
{return a / b;
}
int main()
{int x, y;int input 1;int ret 0;do{printf(******************\n);printf( 1:add 2:sub ****\n);printf( 3:mul 4:div ****\n);printf(******************\n);scanf(%d, input);switch (input){case 1:printf(输⼊操作数);scanf(%d %d, x, y);ret add(x, y);printf(ret %d\n, r);break;case 2:printf(输⼊操作数);scanf(%d %d, x, y);ret sub(x, y);printf(ret %d\n, r);break;case 3:printf(输⼊操作数);scanf(%d %d, x, y);ret mul(x, y);printf(ret %d\n, r);break;case 4:printf(输⼊操作数);scanf(%d %d, x, y);ret div(x, y);printf(ret %d\n, r);break;case 0:printf(退出程序\n);break;default:printf(选择错误\n);break;}} while (input);return 0;
} 经过简化可以优化代码逻辑更加清晰易懂。
//使⽤回到函数改造后
#include stdio.h
int add(int a, int b)
{return a b;
}
int sub(int a, int b)
{return a - b;
}
int mul(int a, int b)
{return a * b;
}int div(int a, int b)
{return a / b;
}
//回调函数根据接收的不同函数的地址调用不同的函数
void calc(int(*pf)(int, int))
{int ret 0;int x, y;printf(输⼊操作数);scanf(%d %d, x, y);ret pf(x, y);printf(ret %d\n, ret);
}
int main()
{int input 1;do{printf(*****************\n);printf( 1:add 2:sub ****\n);printf( 3:mul 4:div ****\n);printf(*****************\n);printf(请选择);scanf(%d, input);switch (input){case 1:calc(add);break;case 2:calc(sub);break;case 3:calc(mul);break;case 4:calc(div);break;case 0:printf(退出程序\n);break;default:printf(选择错误\n);break;}} while (input);return 0;
} ii实现上下机之间的通讯 我们可以约定不同的ID当接收方接到不同的ID信息时根据ID信息调用不同的函数这样就实现了通过回调函数来实现上下机之间的通信。 其实在 i 中我们就通过打印信息约定了
操作数1234操作加法减法乘法除法 在提前约定好的前提下上位机发送一串数据信息下位机通过解析其中的ID信息得到IDID不同调用的函数不同做出的反应也不同。 本文仅仅是提供2个例子并不能让你详细了解回调函数的所有功能。 ~完
未经作者同意进制转载