指向函数的指针

目录

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
相关推荐
小莞尔20 小时前
【51单片机】【protues仿真】基于51单片机的篮球计时计分器系统
c语言·stm32·单片机·嵌入式硬件·51单片机
小莞尔20 小时前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
liujing1023292920 小时前
Day03_刷题niuke20250915
c语言
第七序章1 天前
【C++STL】list的详细用法和底层实现
c语言·c++·自然语言处理·list
l1t1 天前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
l1t1 天前
利用美团龙猫用libxml2编写XML转CSV文件C程序
xml·c语言·libxml2·解析器
Gu_shiwww1 天前
数据结构8——双向链表
c语言·数据结构·python·链表·小白初步
你怎么知道我是队长1 天前
C语言---循环结构
c语言·开发语言·算法
程序猿编码1 天前
基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
linux·c语言·c++·内核模块·fifo·字符设备
mark-puls2 天前
C语言打印爱心
c语言·开发语言·算法