指向函数的指针

目录

typedef

typedef 在 C 语言中用于为类型创建别名,它使得程序员能够用新的名称来表示已有的类型,从而提高代码的可读性和可维护性。以下是 typedef 的几种常见用法:

1.创建类型别名

c 复制代码
typedef unsigned int uint;

在这个例子中,uint 变成了 unsigned int 的别名。

2. 创建结构体类型的别名

c 复制代码
typedef struct {
    int id;
    char name[50];
} Employee;

现在你可以使用 Employee 来声明结构体变量,而不是使用冗长的 struct 关键字。

3. 创建指针类型的别名

c 复制代码
typedef int *IntPtr;

这里,IntPtr 成为了指向 int 的指针的别名。

4. 创建函数指针类型的别名

c 复制代码
typedef int (*FuncPtr)(int, int);

在这个例子中,FuncPtr 是一个可以指向接受两个 int 参数并返回 int 的函数的指针。记住这个例子。

指向函数的指针

指向函数的指针是C语言中一个强大的特性,它允许你创建可以指向不同函数的变量。这在需要根据条件调用不同函数或者实现回调函数时非常有用。

声明函数指针

函数类型声明的一般形式如下:

c 复制代码
return_type (*pointer_name) (argument_list);
  • return_type 是函数返回的类型。
  • pointer_name 是你创建的指针变量的名称。
  • argument_list 是函数接受的参数列表,包括参数的类型和数量。

示例

假设我们有两个简单的函数:

c 复制代码
int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

我们可以按照函数的模样构建一个指向函数的指针。

c 复制代码
typedef int (*operation_func_t)(int, int);

用这个类型来创建一个指向函数的指针:

c 复制代码
operation_func_t operation;

最后就可以通过把函数的地址赋给函数指针,通过指针调用函数了

c 复制代码
// 将 add 函数的地址赋给 operation 指针
operation = add;

// 通过指针调用 add 函数
int result = operation(5, 3); // 返回 8

// 将 subtract 函数的地址赋给 operation 指针
operation = subtract;

// 通过指针调用 subtract 函数
result = operation(5, 3); // 返回 2
相关推荐
请注意这个女生叫小美1 天前
C语言 斐波那契而数列
c语言
Legendary_0081 天前
Type-C 一拖二快充线:突破单口限制的技术逻辑
c语言·开发语言
智者知已应修善业1 天前
【查找字符最大下标以*符号分割以**结束】2024-12-24
c语言·c++·经验分享·笔记·算法
91刘仁德1 天前
c++类和对象(下)
c语言·jvm·c++·经验分享·笔记·算法
No0d1es1 天前
电子学会青少年软件编程(C语言)等级考试试卷(四级)2025年12月
c语言·青少年编程·电子学会·四级·2025年
皮皮哎哟1 天前
深入浅出双向链表与Linux内核链表 附数组链表核心区别解析
c语言·数据结构·内核链表·双向链表·循环链表·数组和链表的区别
wanghu20241 天前
AT_abc443_C~E题题解
c语言·算法
梵刹古音1 天前
【C语言】 浮点型(实型)变量
c语言·开发语言·嵌入式
-dzk-1 天前
【代码随想录】LC 203.移除链表元素
c语言·数据结构·c++·算法·链表
进击的小头1 天前
陷波器实现(针对性滤除特定频率噪声)
c语言·python·算法