typedef-socket 的signal函数看不懂

问题描述

socket 的signal函数看不懂

书上写:"用typedef简化函数原型
2~3 函数signal的正常函数原型因层次太多而变得很复杂:
void (*signal(int signo, void (*func)(int))) (int) ."
这是神马函数?
比如void (*p) (int)我知道这叫函数指针, 可是括号里的 *signal(int signo, void (*func)(int)) 是什么东西? 是一个名字叫做*signal的函数? 这是语法错误吧?

解决方案

不是语法错误,这个函数很复杂,当时学的时候就没有学太明白,我试着分析一下,我分析的不知道对不对。。。。。
给你个参考
从void(* func)(int) 开始看
这是一个函数指针,然后向右看,遇到括号往回返,一直看待再出现括号,
就是signal(int signo ,void(*func)(int))这是个函数,到这里就是说void(*func)(int)这个函数指针是函数signal的一个参数,
与int signo 一起做signal函数的参数,
然后前面加* 变幻成你给的形式 void(*signal(int signo,void(*func)(int)))(int),应该是一个函数指针。

晕了~~~你参考一下吧,我真心的不确定。

时间: 2024-08-24 21:44:22

typedef-socket 的signal函数看不懂的相关文章

c#新手,在一个xna模板中看到一个按键函数,看不懂,求前辈指点

问题描述 c#新手,在一个xna模板中看到一个按键函数,看不懂,求前辈指点 public bool IsNewKeyPress(Keys key, PlayerIndex? controllingPlayer, out PlayerIndex playerIndex) { if (controllingPlayer.HasValue) { // Read input from the specified player. playerIndex = controllingPlayer.Value;

c++-求两个日期相差的天数 用友元函数 我不知道要怎么改 看不懂调试。

问题描述 求两个日期相差的天数 用友元函数 我不知道要怎么改 看不懂调试. #include class Date {int yearmonthday;public : void show(); int set(int aint bint c); friend int End(Date &d1 Date &d2);};void Date::show (){cout<<""please input year monthday.""<}

c++-他们说这是关于虚函数的,可是我看不懂,求解。

问题描述 他们说这是关于虚函数的,可是我看不懂,求解. 解决方案 c++知识点:这个类A 是一个含有虚函数的类,那么此时运行时编译器会为他生成虚表,并且在A类的对象内存的起始位置加了虚表的首地址,所以此时对象的大小会比 不含有虚函数的类对象多了4个字节(32位机下),因为编译器需要通过这个指针去运行时寻找虚表. 然后看看你的代码: 在你的a对象的前四个字节存的是虚表的首地址(32位机,64位为8字节), 此事声明了一个函数指针类型,fp, 然后定义一个此类型的变量myfunc 然后myfunc

c++11-请帮忙看下async_accept的这种调用方法,没有使用Bind,看不懂...

问题描述 请帮忙看下async_accept的这种调用方法,没有使用Bind,看不懂... void AsyncAcceptManaged(ManagerAcceptHandler mgrHandler) { _acceptor.async_accept(_socket, [this, mgrHandler](boost::system::error_code error) { if (!error) { try { _socket.non_blocking(true); mgrHandler(

c++-C++链表(我写的程序自己也看不懂)

问题描述 C++链表(我写的程序自己也看不懂) 建立一个10结点的单向链表,每个结点包括学号,姓名,性别,年龄,对其进行排序,采用插入排序法,按学号从小到大排序.(我链表没听懂,基础概念讲讲也好~) 解决方案 以下是创建链表的代码,c语言结构体实现:(不带头结点,一级指针实现,当然可以多级指针实现,也可以带头结点,也可以是循环链表,也可以是双向循环链表)#include #include //链表结构体定义typedef struct _NODE{ int data; struct _NODE

验证码-c语言,学生信息管理系统。看不懂错误提示??

问题描述 c语言,学生信息管理系统.看不懂错误提示?? #include #include #include #include #include #define N 100 typedef struct student { int num; //学号,姓名,年龄,性别,出生年月,地址,电话, char name[18]; char sex; int age; int y, m; int tel; char add[30]; char mail[20]; int res; int stu; } S

深入C++ typedef的用法总结(必看)_java

第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量:以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb;也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式更省

c++-关于C++的问题出了 好多错 看不懂错误 请求帮助,看晕了

问题描述 关于C++的问题出了 好多错 看不懂错误 请求帮助,看晕了 #include class Stu { char *name; double score; public : void Set(char *na,double s); void Show(); ~Stu(); friend int date(Stu &s1,Stu &s2,Stu &s3,Stu &s4,Stu &s5); }; Stu::Set (char *na,double s) { sc

javascript window.event;这句看不懂

问题描述 javascript window.event;这句看不懂 window.event; 是怎么个用法?? Event不就是个 HTML DOM 对象吗? Window 对象属性 看帮助文档里,window对象并没有 event 这个属性啊.. window和event是怎么扯上关系的. 而且看到window.document还可以调用 document. 可能是我对于window.document这些对象的层次关系有点模糊,求讲解 解决方案 event 表示的是事件,例如常见的,按钮的