美文网首页
【C语言】函数作为函数参数

【C语言】函数作为函数参数

作者: Roc_J | 来源:发表于2016-10-25 22:55 被阅读0次

Question:在函数void function()中,需要将另外一个函数double input()的函数名作为参数。

首先定义intput()的函数指针

typedef double (*P)(int);
Note:参数部分需要注意,函数input()所有的输入参数类型都需要包含在内。
例如 double input(double u[5], int num, double x), 则在定义时写作 typedef double (*P)(double*,int,double)。
此时,函数作为一种类型,可以直接被其他函数调用。

调用格式

函数声明中定义 void function(P input),调用function(input)即可。

实例
#include <stdio.h>

typedef void (*P)(int);

void print(int n) {
    printf("%d\n",n);
}

void fun(int n,P show(int)) {
    int i;
    for(i=0; i<n; i++) {
        show(i);
    }
}

int main() {
    fun(10,print);
    return 0;
}

也可以写成

#include <stdio.h>

void print(int n) {
    printf("%d\n",n);
}

void fun(int n,void (*show)(int)) {
    int i;
    for(i=0; i<n; i++) {
        show(i);
    }
}

int main() {
    fun(10,print);
    return 0;
}

相关文章

网友评论

      本文标题:【C语言】函数作为函数参数

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