函数指针、回调函数、系统调用区别
2018-06-18 04:17:27来源:未知 阅读 ()
函数指针、回调函数、系统调用区别
1.函数指针
1 int add(int a, int b)
2 {
3 return a+b;
4 }
5
6 int (*fp)(int,int);
7
8 int main()
9 {
10 int c;
11 fp = add; //有指针赋值操作,静态绑定
12 c = fp(2,4);
13 printf("c = %d\n",c);
14 return 0;
15 }
2.回调函数
1 int add(int a, int b) //回调函数
2 {
3 return a+b;
4 }
5
6 int fun(int a, int b, void(*fp)())//中间函数,动态绑定,与传递的函数名有关
7 {
8 return fp(a,b);
9 }
10
11 int main()
12 {
13 int c;
14 c = fun(2,4);
15 printf("c = %d\n",c);
16 return 0;
17 }
体现: 1.函数名作为参数传递给调用函数。
2.将调用者和被调函数分开,回调函数实现具体的功能,调用者无需关注实现的具体细节。
3.系统调用
系统调用 --> (0x80)软中断(系统调用表) --> 内核函数 --> 返回到系统调用层
read --> 系统调用号--内核函数入口 --> 实现功能 --> 返回调用结果
实现方式: 通过中断实现,使用寄存器传参
进程经历了从用户态到内核态的切换,处理完成后再恢复到用户态继续完成系统调用的过程。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ this指针 2020-06-03
- C++ const成员函数 2020-06-03
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash