欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

普通函数的调用和函数指针的回调

程序员文章站 2022-03-17 13:06:56
...
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


int my_add(int x, int y)
{
	printf("my_add, x = %d, y = %d\n", x, y);
	return x + y;
}

void test(int a, int b)
{
	printf("test函数内部\n");
	//my_add必须先存在,才能调用
	printf("result = %d\n", my_add(a, b));
}

int main(void)
{
	test(10, 20);


	printf("\n");
	system("pause");
	return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int my_add(int x, int y)
{
	printf("my_add, x = %d, y = %d\n", x, y);
	return x + y;
}

int my_min(int x, int y)
{
	printf("my_min, x = %d, y = %d\n", x, y);
	return x - y;
}

void test01(int a, int b, int(*p)(int, int))
{
	printf("test函数内部\n");
	//p只是一个指针变量,这个函数不存在
	printf("result = %d\n", p(a, b)); //可以使用后来人写的代码
}

typedef int(*PARRAY)(int, int); //PARRAY为函数指针类型
void test(int a, int b, PARRAY p)
{
	printf("test函数内部\n");
	//p只是一个指针变量,这个函数不存在
	printf("result = %d\n", p(a, b)); //可以使用后来人写的代码
}

int main(void)
{
	test(10, 20, my_min);

	printf("\n");
	system("pause");
	return 0;
}