指向函数的指针

目录

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
相关推荐
wengqidaifeng8 小时前
数据结构(三)栈和队列(上)栈:计算机世界的“叠叠乐”
c语言·数据结构·数据库·链表
VekiSon8 小时前
Linux内核驱动——设备树原理与应用
linux·c语言·arm开发·嵌入式硬件
BlackQid8 小时前
深入理解指针Part5——回调函数及应用
c语言
日拱一卒——功不唐捐8 小时前
字符串匹配:暴力法和KMP算法(C语言)
c语言·算法
lcj25119 小时前
深入理解指针(4):qsort 函数 & 通过冒泡排序实现
c语言·数据结构·算法
4311媒体网10 小时前
C语言操作符全解析 C语言操作符详解
java·c语言·jvm
二年级程序员10 小时前
一篇文章掌握“顺序表”
c语言·数据结构
傻乐u兔11 小时前
C语言进阶————指针4
c语言·开发语言
历程里程碑11 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
2601_9491465318 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言