mmxingye

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

12 | C语言中的函数类型和函数指针类型

函数类型和函数指针类型的区别,让我们先看一个例子

#include <iostream>
using namespace std;
typedef int(Func)(int);
typedef int(*Func_p)(int) ;
int f(int a){return a;}
int main(){
Func_p p=f;
Func* p_ptr=f;
cout<<p(0)<<endl;
cout<<p_ptr(1)<<endl;
}

这段代码的运行结果

0

1

相信大家看到这里应该明白怎么回事了。
函数类型*函数指针类型


这也就可以解释 map 的模板参数需要传进去一个 函数指针类型,而不是函数类型

bool MyCompare(const Person &p1, const Person &p2) {//普通的函数
return (p1.age < p2.age) || (p1.age == p2.age && p1.name.length() < p2.name.length());
}
map<Person,int,decltype(&MyCompare)> group(MyCompare);

在补充一点就是 指针函数 是什么,指针函数返回指针的函数。下面举几个例子

//1
int* func(int,int);
//2
typedef int(*Func_p)(int) ;
Func_p func(int,int);

posted on   独立树  阅读(59)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示