文章目录

  • 缘由
  • 解释函数指针int (\*f)(int*);
  • 解释typedef void(*sighandler_t)(int)

缘由

2021年9月22日在刷CS:APP的时候,邂逅了一种函数指针与typedef结合的写法:typedef void (*sighandler_t)(int)

来源:CSAPP第三版

解释函数指针int (*f)(int*);

对于以下声明:

int (*f)(int*);

要从f开始往外读。 首先(*f)表明f是一个指针;(*f)(int*)表明f是一个指向函数的指针,这个函数以int*作为参数。

总的来看,f是一个指针,指向一个函数,该函数的参数是 int *型, 返回值是int型。即,f被声明为一个函数指针。

这里需要注意的一点是, *f两边的括号是必需的,否则声明变成:

int *f(int *);

它会被解读为

(int *) f(int *);

也就是说,它会被解释为一个函数原型,声明了一个函数f,它以int * 作为参数,返回值类型为int *.

解释typedef void(*sighandler_t)(int)

理解了函数指针的声明,那么对于

typedef void(*sighandler_t)(int)

的理解就可以展开了。

这里为一个函数指针指定了别名:sighandler_t

sighandler_t 是一个函数指针,它指向这样一个函数:参数是int型,返回值是void型,即无返回值。

下面是别名的使用:

sighander_t signal(int signum, sighandler_t handler);

声明signal是一个函数,它有两个参数,其一是int型的signum,其二是sighandler_t型(函数指针型)的handler; 函数signal的返回值类型也是sighandler_t型(函数指针型)。

参考:CSAPP 第三版

对函数指针与typedef的理解:typedef void (*sighandler_t)(int)相关推荐

  1. 关于C++中函数指针的使用(包含对typedef用法的讨论)

    关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用. //形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(in ...

  2. 对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)

    typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 此处由于加了type ...

  3. 指向 类成员函数 的 函数指针

    原文:http://www.vckbase.com/document/viewdoc/?id=1818 一.成员函数指针的用法 在C++中,成员函数的指针是个比较特殊的东西.对普通的函数指针来说,可以 ...

  4. 函数指针(就做个笔记)

    1,函数的地址 #include <stdio.h> int main(){int i=0;printf("main=%p\n",main);printf(" ...

  5. typedef 返回类型(*Function)(参数表) ——typedef函数指针

    //首先看一下函数指针怎么用 #include <iostream> using namespace std; //定义一个函数指针pFUN,它指向一个返回类型为char,有一个整型的参数 ...

  6. c/c++中typedef与函数指针

    读linux代码时,常常见到形如 typedef void (*irq_flow_handler_t)(unsigned int irq, struct irq_desc *desc); 的代码. 这 ...

  7. C typedef功能介绍(内附函数指针和指针函数的区别)

    2018-01-10 创建人:Ruo_Xiao 开发环境:VS2010 2018-01-11 修改人:Ruo_Xiao 增加指针函数的解释以及和函数指针的区别的理解. 查阅了很多资料,我的理解是:ty ...

  8. 再谈typedef(重点为函数指针)

    有种很方便的写法. typedef int *p: p pointer: 这时直接把pointer带入原式中,取代p然后去掉typedef,得到的结果就是int * pointer: 哈哈,这样直接替 ...

  9. typedef 定义函数指针

    原文地址:typedef 定义函数指针作者:兰音 (一)简单的函数指针的应用. //形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ ...

最新文章

  1. java修改 nsf中的数据_最新NSF申请指南中的一些重要改动
  2. Tcpdump命令的使用与示例——linux下的网络分析
  3. 移动互联环境下的流程管理
  4. 【移植Linux 3.4.2内核第二步】之修改系统分区
  5. C++ primer第六章6.6函数匹配
  6. 整洁架构设计分析--架构设计的本质是什么?
  7. java代理机制简单实现
  8. 检测Web浏览器上的内存泄漏
  9. 针对自动化测试的23种Node.js优秀实践
  10. 第一次scrum冲刺!
  11. resnet的演化(res2net,resnext,se-resnet,sk-resnet,resnest)
  12. C语言员工信息管理系统源代码
  13. 业内常见电子病历编辑器简单比较(1)编辑控件来源比较
  14. 一个非常naive的分数阶微积分介绍
  15. 销售额预测_机器学习
  16. flappy bird用java实现_java实现Flappy Bird游戏源代码
  17. SAP中新增移动类型科目确定配置处理实例
  18. End-to-End Object Detection with Fully Convolutional Network 论文笔记
  19. wince6.0 屏幕旋转
  20. ATFX:道琼斯指数的反弹,11月能否突破35000关口?

热门文章

  1. Visual Studio 压力测试注意点
  2. VC++获取操作系统的版本 GetVersionEx函数
  3. 使用office生成PDF文件
  4. 教你10招最有效防电脑辐射方法
  5. 人工智能的两条进化路线
  6. python 股票指标库talib_股票指标库 TA-Lib 安装方法
  7. mysql的还原_MySQL 还原
  8. STM32 基础系列教程 36 - Lwip_dns
  9. mfc 实现 设备 热插拔功能
  10. 3、C语言面试笔试--控制结构