当前位置: 首页 > 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是函数指针类型,返回值也是函数指针类型;
这个代码是在声明函数;



http://www.mrgr.cn/news/26576.html

相关文章:

  • AI绘画Stable diffusion保姆级教程,看这一篇就够了!
  • 什么护眼台灯性价比高又好用?良心推荐五款性价比高的护眼台灯
  • 如何解决python的shared_memory自动删除的问题
  • 023.PL-SQL进阶—视图
  • HTML+CSS - 网页布局之网格布局
  • 创建一个 `systemd` 服务文件来管理 uWSGI 启动、停止和其他维护任务
  • 开放式耳机哪些比较好?开放式耳机和骨传导耳机哪个好?
  • orangepi部署web环境
  • 树莓派本身编译和更新内核
  • windows查找自己的ip地址
  • 哇!原来vscode的终端可以这么美
  • PNP晶体管与NPN晶体管
  • 【git】
  • DFS之连通性模型
  • 排查 Mybatis-plus 3.5.5: 返回的pages参数是从哪里来的
  • CSS基本布局理解(测试)——WEB开发系列38
  • 【浅谈】单片机基本概念
  • 提升RAG系统的回答质量:高质量文档解析终极干货
  • 嵌入式为什么学C++
  • Redisson 异步释放锁