大家来分析这个函数指针?

wzw200 2009-04-30 01:24:02
void (*signal(int signum,void(* handler)(int)))(int);

signal 用法 哈 知道怎么用 不知道最后的(int);
有什么用

谢谢回复!
...全文
149 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjjdebug 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yingkundu 的回复:]
原型:
void (*signal(int signum,void(* handler)(int)))(int);

最外层: void(*signal)(int) 是个函数指针,signal之指向某个函数的指针,此函数接受int型参数,返回为空。
中间: (int signum,void(* handler)(int)) signal所指向的那个函数的参数应该是(int,ff)型。其中ff就是void(* handler)(int)。
最内层: void(* handler)(int) 是个函数指针,handler是指向某个函数的指针。此函数接受一个int型参数,返回为空;

[/Quote]
谢谢提醒!, 我写的太随意了,而且把函数指针写成指针函数等等错误...
wzw200 2009-04-30
  • 打赏
  • 举报
回复
大家说的 我都明白了

谢谢了
yingkundu 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hejinjing_tom_com 的回复:]
看起来是三个函数连在一起的定义。
第一层: void(* handler)(int)  是一个指针函数,返回一个指针
第二层:*signal(int signum,void(* handler)(int)) 是一个指针函数,返回一个指针
第三层:void (*signal(int signum,void(* handler)(int)))(int); 是一个函数,一个参数,无返回值
[/Quote]



原型:
void (*signal(int signum,void(* handler)(int)))(int);

最外层: void(*signal)(int) 是个函数指针,signal之指向某个函数的指针,此函数接受int型参数,返回为空。
中间: (int signum,void(* handler)(int)) signal所指向的那个函数的参数应该是(int,ff)型。其中ff就是void(* handler)(int)。
最内层: void(* handler)(int) 是个函数指针,handler是指向某个函数的指针。此函数接受一个int型参数,返回为空;
KevinHo 2009-04-30
  • 打赏
  • 举报
回复
(int)是函数的参数
yyyapple 2009-04-30
  • 打赏
  • 举报
回复
2L 已经很清楚了
wzw200 2009-04-30
  • 打赏
  • 举报
回复
signal是一个函数,有两个参数,第一个是int,第二个是指向参数为int返回值为void的函数的指针,signal的返回值是一个函数指针,一样指向一个参数为int返回值为void的函数

http://publications.gbdirect.co.uk/c_book/chapter9/signal_handling.html
hjjdebug 2009-04-30
  • 打赏
  • 举报
回复
看起来是三个函数连在一起的定义。
第一层: void(* handler)(int) 是一个指针函数,返回一个指针
第二层:*signal(int signum,void(* handler)(int)) 是一个指针函数,返回一个指针
第三层:void (*signal(int signum,void(* handler)(int)))(int); 是一个函数,一个参数,无返回值
wzw200 2009-04-30
  • 打赏
  • 举报
回复
void (*A)(int);

A signal(int signum,void(* handler)(int))
{
return A
}

这样定义有什么好处呢
也就是signal的返回值 又是一个指针函数变量
jame2001 2009-04-30
  • 打赏
  • 举报
回复
參數 1 : int signum
2 : void(* handler)(int)
返迴值 : void (*)(int);
liuxu2559 2009-04-30
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20041007/15/3431197.html
以前就有人问过,解答应该会让你满意.
Paradin 2009-04-30
  • 打赏
  • 举报
回复
typedef void (*HandlerProc)(int);
typedef void (*ReturnProc)(int);
typedef ReturnProc (*SignalProc)(int, HandlerProc);

最后定义的是一个SignalProc
liuxu2559 2009-04-30
  • 打赏
  • 举报
回复
应该是这个无返回值函数的参数
Paradin 2009-04-30
  • 打赏
  • 举报
回复
这里定义了一个函数,参数是int signum 和 void(*handler)(int), 返回一个函数指针, 参数是最后的int, 返回void
lingyin55 2009-04-30
  • 打赏
  • 举报
回复
最后的(int)是这个函数的参数。
源码链接: https://pan.quark.cn/s/9f500ac403c2 摄像头配置是嵌入式系统构建中的一个关键步骤,它涉及到硬件与软件的紧密协作。图像信号处理器(ISP)作为图像信号处理的核心单元,在摄像头配置过程中扮演着至关重要的角色。在硬件层面,它涵盖了摄像头与ISP之间的连接以及信号传输的细节;在软件层面,主要依托V4L2框架进行视频流的采集和处理。接下来将具体说明文档中涉及的硬件机制、软件机制、信号配置及V4L2等领域的摄像头配置实践经验。 ### 硬件机制与连接 文档首先阐述了硬件线路中中央处理器与摄像头之间的连接方式。在此,相机串行接口(CSI)模块是摄像头数据传输的核心部分,它负责与外部CMOS图像感应元件进行交互。CSI接口包含以下几个关键信号线: 1. **CSI_VSYNC (垂直同步信号)**:用于标示一帧图像的起始点。该信号传输方向为从图像感应元件(sensor)至应用处理器(AP)。 2. **CSI_HSYNC (水平同步信号)**:用于提供行同步信号,并用于识别消隐信号。同样,信号流向为sensor至AP。 3. **CSI_D[7:0]**:8位摄像头数据总线,用于传输各种图像数据,包括YUV、YCC、RGB或Bayer格式。数据流向为sensor至AP。 4. **CSI_MCLK (传感器主时钟信号)**:由传感器输出主时钟信号,为外部摄像头提供时钟基准。信号流向为AP至sensor。 5. **CSI_PIXCLK (像素时钟信号)**:由摄像头输出,通常与MCLK主时钟信号频率相同。信号流向为sensor至AP。 正确设置这些连接,确保信号同步传输,是硬件配置的基础。 ### 软件机制与驱动程序 摄像头驱动...

70,040

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧