typedef int(*FunType)(int, int)
和 int(*FunType)(int, int)
是两种不同的函数指针类型定义方式,它们之间的区别在于语法和使用方式。
-
typedef int(*FunType)(int, int)
这是通过
typedef
关键字创建了一个别名FunType
,用于表示指向具有相同签名的函数的函数指针类型。- 语法上,通过
typedef
关键字将int(*FunType)(int, int)
定义为FunType
的别名。 - 使用时,可以直接使用
FunType
来声明函数指针变量,并将其与特定函数关联。
示例:
typedef int(*FunType)(int, int); int add(int a, int b) { return a + b; } FunType ptr = &add; // 声明并初始化函数指针 int result = ptr(3, 4); // 调用函数指针
cpp复制代码
typedef int(*FunType)(int, int); int add(int a, int b) { return a + b; } FunType ptr = &add; // 声明并初始化函数指针 int result = ptr(3, 4); // 调用函数指针
- 语法上,通过
-
int(*FunType)(int, int)
这是直接定义了一个函数指针类型
FunType
,它表示指向具有相同签名的函数的函数指针类型。- 语法上,直接将
int(*FunType)(int, int)
定义为FunType
类型。 - 使用时,需要显式地声明函数指针变量,并将其与特定函数关联。
示例:
int (*FunType)(int, int); // 声明函数指针类型 int add(int a, int b) { return a + b; } FunType ptr = &add; // 声明并初始化函数指针 int result = ptr(3, 4); // 调用函数指针
cpp复制代码
int (*FunType)(int, int); // 声明函数指针类型 int add(int a, int b) { return a + b; } FunType ptr = &add; // 声明并初始化函数指针 int result = ptr(3, 4); // 调用函数指针
- 语法上,直接将
总结:
typedef int(*FunType)(int, int)
使用typedef
关键字创建了一个别名FunType
,将其定义为函数指针类型。int(*FunType)(int, int)
直接定义了一个函数指针类型FunType
。