美文网首页
[C指针]函数指针:保存函数入口地址的指针

[C指针]函数指针:保存函数入口地址的指针

作者: AkuRinbu | 来源:发表于2019-04-11 17:07 被阅读0次

学习笔记

《深入理解C指针》
http://www.ituring.com.cn/book/1147
第3章 指针与函数

本文内容

1、声明函数指针
2、使用函数指针
3、传递函数指针
4、返回函数指针
5、使用函数指针
6、比较函数指针

函数指针

1、声明函数指针

  • 函数指针:传入double,返回int,函数指针名为 fptr_1括号不可省略

int (* fptr_1) ( double ) ;

  • 对比,返回指针的函数,返回 int *

int * f2( ) ;

2、使用函数指针

  • int (*fptr1) (int); fptr1 = square;
    只要传入的是int同时满足,返回的也是int函数,就可以把函数名赋值给函数指针
fptr1 = square;
  • 声明成类型(即以后就当成类型来用,即类型名可以放哪里就在哪里放)
typedef int (*funcptr)(int);
funcptr fptr2;
fptr2 = square;
printf("%d squared is %d\n",n, fptr2(n));
typedef int (*funcptr)(int);

3、传递函数指针

printf("%d\n",compute(add,5,6));
printf("%d\n",compute(subtract,5,6));

传递函数指针

4、返回函数指针

返回函数指针

5、使用函数指针

fptrOperation operations[128] = { NULL };

6、比较函数指针

  • 可以对函数指针使用 ==!=
比较函数指针

参考资料

[习题18]C语言 回调函数:指向函数的指针 int (*POINTER_NAME) = (int a ,int b);
https://www.jianshu.com/p/a63b9575c86a

相关文章

网友评论

      本文标题:[C指针]函数指针:保存函数入口地址的指针

      本文链接:https://www.haomeiwen.com/subject/sfjtwqtx.html