c - 为什么我可以为函数指针分配对函数的引用和函数本身?
问题描述
我试图理解 C 中的函数指针。
我已经定义了这种类型:
typedef int (*bin_op_ptr)(int, int);
我认为它应该是一个指向带有两个int
参数并返回一个函数的指针int
。
然后我用这个原型定义了一个简单的函数:
int min(int a, int b);
我注意到我可以同时做这两个
bin_op_ptr min_ptr1 = min;
和
bin_op_ptr max_ptr2 = &min;
我有点迷路了。
为什么可以同时分配min
和引用min
具有相同类型的变量?
如果我有一个指向整数的指针,我只能分配对整数的引用,而不是整数本身。
我对 C 函数指针的工作方式有什么误解吗?
解决方案
这几乎是这个问题的完全重复
答案是函数可以根据规范隐式转换为函数指针(类似于数组到指针衰减)。
推荐阅读
- javascript - 检查图表是否在 apexcharts 中呈现
- python - 在 Python 中删除方括号
- python - Python Selenium Webdriver:在 for 循环中重复相同的信息
- ansible - 响应模块未加载路径
- asp.net-mvc - IIS 上的 ASP.NET MVC 5 应用程序抛出 500 - 内部服务器错误
- api - 基于声明性资源的需求授权不适用于 API 控制器
- regex - 如何在 nginx 中创建一个正确的正则表达式,它将匹配“?item_id =”
- c# - 如何使用 Cake 脚本执行 t4 模板
- python-3.x - 该程序不显示 lambda 表达式中的列表(python v3)
- angular - Monorepo 中 Angular 库与 Angular 模块的优势?NX 架构