c基础 - 函数指针定义

前言

变量:就是给内存地址取一个别名;

1. 函数指针

函数指针用的最多的就是 回调,在 java中一般是通过对象、通过接口来回调,在c和c++中就是通过 函数指针来实现回调

2. 格式

方法的返回值( * 方法的名称)(方法的参数)
比如:void(*add_p)(int, int);

3. 示例代码如下

// 函数指针,相当于 回调

// 两个数相加
void add(int num1 , int num2){
    printf("num1 + num2 = %d\n" , (num1+num2));  // num1 + num2 = 3
}

// 两个数相减
void mins(int num1, int num2){
    printf("num1 - num2 = %d", (num1 - num2));  // num1 - num2 = -1
}

// 参数1:方法指针(类似于java中的接口),两个数
void operate(void(method)(int,int) , int num1 , int num2){
    method(num1, num2);
}


void main(){

    // 在这个Simple.cpp中可以直接用下边方式调用;
    add(1,2);  

    // 但是想要在另一个文件调用add方法,就不能这么调用了,其实另外一个文件也是可以调用这个方法的,需要把 函数指针传给另一个方法就可以

    // 方法指针的定义格式如下: 
    // 方法的返回值* (方法的名称)(方法的参数)
    // void* (add_p)(int, int);

    operate(add , 1 , 2);
    operate(mins, 1, 2);

    getchar();
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,600评论 1 32
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,216评论 0 38
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,239评论 0 7
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,580评论 0 6
  • 努力了能不能得到我想要的!
    颜涵阅读 197评论 0 0

友情链接更多精彩内容