typedef 和 函数指针

本文深入探讨了C语言中函数指针的应用,包括如何使用typedef定义类型别名来简化函数指针的使用,并展示了如何通过函数指针调用不同类型的函数实例。此外,还详细介绍了如何在主函数中动态改变函数指针的目标,实现灵活的功能切换。
#include <stdio.h>
#include <stdlib.h>

int multiply(int num1, int num2){
	return num1 * num2;
}

int add(int num1, int num2){
	return num1 + num2;
}

int (*ptr_func)(int, int);

typedef int (*ptr_func_t)(int, int);

typedef char* str_ptr_t;

int main(void) {
	ptr_func = multiply;
	printf("2 * 3 = %d\n", ptr_func(2, 3));
	ptr_func = &multiply;
	printf("3 * 4 = %d\n", ptr_func(3, 4));

	//=====================
	ptr_func_t ptr_func1, ptr_func2; //equals to: int (*ptr_func1)(int, int); int (*ptr_func2)(int, int);
	ptr_func1 = multiply;
	ptr_func2 = add;
	printf("1 * 2 = %d\n", ptr_func1(1, 2));
	printf("1 + 2 = %d\n", ptr_func2(1, 2));

        str_ptr_t ptr1, ptr2; //equals to: char *ptr1, *ptr2
	ptr1 = "shanghai";
	ptr2 = "beijing";
	printf("%s %s\n", ptr1, ptr2);
	return EXIT_SUCCESS;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值