C语言提高:函数指针做函数参数

Posted 流楚丶格念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言提高:函数指针做函数参数相关的知识,希望对你有一定的参考价值。

题目

请构造一个接口函数,实现对两个整数执行某种操作,该操作由调用者
实现。

要求:测试案例对两个整数进行加减运算

知识回顾

函数指针的三种定义与使用方式:
https://yangyongli.blog.csdn.net/article/details/118711459

代码

在这里插入图片描述

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// 加法计算器
int plus(int a, int b)
{
	return a + b;
}
// 减法计算器
int minus(int a, int b) {
	return a - b;
}

// 用两种方法使用函数指针作为参数

// 1.函数指针直接当参数
int caculator_1(int a,int b ,int(*func)(int,int)) {
	return func(a,b);
}

// 2.指针变量当参数
typedef int(*FUNC_POINTER)(int ,int);
int caculator_2(int a, int b, FUNC_POINTER func) {
	return func(a, b);
}

int main()
{
	printf("第一种方法:\\n");
	int plu = caculator_1(10, 20, plus);
	printf("10 与 20 的加法结果 = %d\\n", plu);
	int minu = caculator_1(20, 10, minus);
	printf("20 与 10 的减法结果 = %d\\n", minu);

	printf("第二种方法:\\n");
	int plu2 = caculator_2(10, 20, plus);
	printf("10 与 20 的加法结果 = %d\\n", plu);
	int minu2 = caculator_2(20, 10, minus);
	printf("20 与 10 的减法结果 = %d\\n", minu);
	return 0;
}


以上是关于C语言提高:函数指针做函数参数的主要内容,如果未能解决你的问题,请参考以下文章

C语言 函数指针做函数参数(即回调函数)

C语言 函数指针做函数参数(即回调函数)

c语言 结构体的指针作为函数参数问题

零基础学C语言知识总结十:指针做函数参数,指针做函数返回类型

C语言中 指针做函数参数传递二维数组

C 语言数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )