当前位置: 首页 > news >正文

C语言内功强化之函数

函数的3大属性:输入参数、函数名、返回值

C 语言中,函数名本身就是 “函数入口地址”,在下面的函数里面使用指针p指向printf的函数入口地址,这里通过间接调用访问,运行期间通过指针地址找到函数 

#include "stdio.h"int (*p) (const char *,...);void fun(void)
{// printf("funcall\r\n");p = printf;p("funcall\r\n");
}int main(void)
{fun();return 0;
}

高级用法

对于函数指针的typedef,是把变量名替换为类型名称,格式看起来特殊

因为函数名就是可以访问函数的地址,所以是用指针*

类似这个应用:

#include "stdio.h"typedef int(*PrintFunC)(const char*,...)
PrintFunC p;void fun(void)
{// printf("funcall\r\n");p = printf;p("funcall\r\n");
}int main(void)
{fun();return 0;
}
#include "stdio.h"// 1. 基础用法:给简单类型起别名(嵌入式常用)
typedef char s8;    // 8位有符号字符
typedef int s32;    // 32位有符号整数// 2. 进阶用法:给函数指针类型起别名(处理传感器数据的函数指针)
typedef s32 (*SensorFunc)(s8 sensor_id, s32 *data);  // 函数指针类型别名// 自定义一个“读取温度传感器”的函数(匹配 SensorFunc 类型)
s32 read_temp(s8 id, s32 *data) {*data = 25;  // 模拟读取到25℃printf("传感器%d:温度=%d℃\n", id, *data);return 0;  // 返回0表示成功
}int main(void) {s32 temp_data;          // 用别名 s32 定义变量SensorFunc get_sensor;  // 用别名 SensorFunc 定义函数指针get_sensor = read_temp; // 函数指针指向“读取温度”的函数get_sensor(1, &temp_data);  // 调用函数指针return 0;
}

http://www.dtcms.com/a/564587.html

相关文章:

  • GAOXian_CAD_KURUICHENG
  • 【MRTK3踩坑记录】Unity 2022 中 MRTK3 Input Simulator 无法使用 WASD 控制相机的完整排查记录
  • 高校网站建设的意义流量网站建设教程
  • 布局具身智能赛道,深圳作为科技完成近亿元融资
  • 无zookeeper Kafka 4.1.0 Raft 集群搭建
  • 十五五规划产业布局正式落地,美尔斯通加速深耕量子科技
  • 解决glibc版本低VSCode无法远程问题
  • 线上编程哪家比较好阳西网站seo
  • 数据分析-数据沙箱
  • 【JUnit实战3_26】第十五章:表现层测试(下)—— Selenium 在网页测试中的用法
  • 浏览器——CSDN网站的页面就是打不开,显示无法访问的解决办法
  • 110、23种设计模式之状态模式(19/23)
  • 做一手楼盘的网站嵌入式工程师能干多久
  • Spring Boot 应用 Docker 监控:Prometheus + Grafana 全方位监控
  • git clone失败
  • Linux 命令与运维终极手册(2025 完整版)
  • 05-异常处理-导读
  • Pandas-之 数据聚合与分组
  • Rust之基础入门项目实战:构建一个简单的猜谜游戏
  • 数据结构之二叉树-初见介绍
  • 【Java 开发日记】finally 释放的是什么资源?
  • VsCode中终端无法运行前端命令
  • 【鸿蒙开发】鸿蒙 ArkTS 语言从零到一完整指南
  • 门户网站建设公司网页设计风格分类
  • 综合整理:pdf预览显示:你尝试预览的文件可能对你的计算机有害。如果你信任此文件以及其来源,请打开此文件以看其内容,如何解决以正常预览文件
  • 微服务拆分之SpringCloud
  • Unity与iOS原生交互开发入门篇 - iOS原生弹窗与回调
  • 企业网站推广在哪里办成免费crm推广网站
  • 本地的赣州网站建设网站访问量asp
  • 总局核名的办理条件