C 语言基础四:函数

1 阅读1分钟

C 语言基础四:函数

一.函数使用

#include <stdio.h>

//函数声明
int add(int a,int b);

int main(void){
    //使用
    int result = add(4, 5);
    printf("result:%d \n",result);
 
}
//函数定义
int add(int a,int b){
    return a + b;
}

二. 函数多处使用

  • other.h中声明函数
#ifndef other_h
#define other_h

#include <stdio.h>

//函数声明
int add(int a,int b);

#endif /* other_h */


  • other.c定义函数
#include "other.h"

//函数定义
int add(int a,int b){
    return a + b;
}

  • main.c中使用
#include <stdio.h>
#include "other.h"
int main(void){
    //使用
    int result = add(4, 5);
    printf("result:%d \n",result);
 
}

三.函数指针

#include <stdio.h>

int addx(int x,int y);

int main(void){
    int (*p)(int,int) = & addx;
    int a,b,c,d;

    printf("请输入三个数字:\n");
    scanf("%d %d %d",&a,&b,&c);
    int result = p(c,p(a,b));
    printf("result:%d\n",result);
    return 0;
}


int addx(int x,int y){
    return x + y;
}

四.回调函数

typedef int (*CallbackFunction)(int,int);

int addx(int x,int y);
int multx(int x,int y);
int compute(int x,int y,CallbackFunction callback);

int main(void){

    int result1 =compute(3, 4, addx);
    printf("result1:%d \n",result1);
    
    int result2 =compute(3, 4, multx);
    printf("result2:%d \n",result2);
    return 0;
}

int compute(int x,int y,CallbackFunction callback){
    return  callback(x,y);
}


int addx(int x,int y){
    return x + y;
}

int multx(int x,int y){
    return x * y;
}