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

两段有趣的代码(C语言函数指针)

目录

  • part1
  • part2


两段有趣的代码

part1

(*(void (*)())0)();

我们知道函数指针:

void (*p)()

去掉函数指针变量名就是函数指针的类型

void (*)()

那这段代码我们就可以理解为将0强制转换为函数指针类型,再进行解引用;进行调用函数;
这就意味着我们假设0地址处放着无参,返回类型是void的函数;
最终是调用0地址处放的函数;

part2

void (*signal(int , void(*)(int)))(int);

我们来将这个代码进行拆解:
在这里插入图片描述
也就是说,signal是一个函数,有两个参数,参数1是int类型,参数2是函数指针类型,返回值也是函数指针类型;
这个代码是在声明函数;


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在C++中,如何避免出现Bug?
  • Mini-Omni 语言模型在流式传输中边思考边听说应用
  • C++ 封装 Socket 进行通信
  • Docker上安装mysql
  • 【Day14-单例设计模式动态代理】
  • Docker torchserve 部署模型流程
  • 数据分析-前期数据处理
  • 雷达液位计助力造纸行业精准测量
  • Spring security 动态权限管理(基于数据库)
  • 使用Python生成多种不同类型的Excel图表
  • 计算机毕业设计 毕业季一站式旅游服务定制平台的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Ribbon (WPF)
  • 研1日记11
  • 302状态如何进行重定向
  • 深度估计智能化的应用
  • .pyc 想到的一些问题
  • [译]前端离线指南(上)
  • 2017前端实习生面试总结
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • CSS中外联样式表代表的含义
  • FineReport中如何实现自动滚屏效果
  • Javascript弹出层-初探
  • JavaScript实现分页效果
  • Java的Interrupt与线程中断
  • java第三方包学习之lombok
  • Java多线程(4):使用线程池执行定时任务
  • Odoo domain写法及运用
  • uni-app项目数字滚动
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 飞驰在Mesos的涡轮引擎上
  • 问题之ssh中Host key verification failed的解决
  • 智能合约开发环境搭建及Hello World合约
  • UI设计初学者应该如何入门?
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​ubuntu下安装kvm虚拟机
  • ​如何使用QGIS制作三维建筑
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #1014 : Trie树
  • $.ajax,axios,fetch三种ajax请求的区别
  • (¥1011)-(一千零一拾一元整)输出
  • (C++20) consteval立即函数
  • (区间dp) (经典例题) 石子合并
  • (四)c52学习之旅-流水LED灯
  • (算法设计与分析)第一章算法概述-习题
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (自用)交互协议设计——protobuf序列化
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 某和OA办公系统全局绕过漏洞分析
  • .NET成年了,然后呢?
  • .net反编译的九款神器