如何阅读此C代码?

科雷旅

我对C还是很陌生,因此无法成功理解以下代码:

#include <signal.h> //1
typedef void (*sighandler_t)(int); //2
sighandler_t signal (int signo, sighandler_t handler); //3

第3行是:

signal是一个带有2个参数的函数,一个是整数,另一个是sighandler_t,并返回sighandler_t?

但是sighandler_t是什么?

它是一个指向函数的指针,其中所指向的函数是一个接受int类型的参数并返回void的函数吗?

您能举一个我如何使用它的例子吗?

吊床

线

typedef void (*sighandler_t)(int);  

定义一个新类型sighandler_t,该类型指向一个函数的指针,该函数需要一个类型的参数int并且不返回任何值

线

sighandler_t signal (int signo, sighandler_t handler);  

声明signal一个函数,该函数需要其类型的第一个参数和类型的int第二个参数,sighandler_t并返回一个type sighandler_t
sighandler_t是用户定义的类型,它最终指向一个函数,该函数期望一个类型的参数int并且不返回任何值

没有typedef它会被写成

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

这更令人困惑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何阅读此C代码?

来自分类Dev

如何阅读此C ++语句

来自分类Dev

如何在perl中阅读此代码?

来自分类Dev

如何阅读此软件锁相环代码?

来自分类Dev

如何阅读此软件锁相环代码?

来自分类Dev

如何使此代码更紧凑且易于阅读

来自分类Dev

如何阅读此功能?

来自分类Dev

如何阅读此语法?

来自分类Dev

如何缩小此C#代码或重构此代码

来自分类Dev

如何用C重写此asm代码?

来自分类Dev

如何改进此C#Linq代码?

来自分类Dev

此Objective-C代码如何工作?

来自分类Dev

我如何优化此Codewars C ++代码?

来自分类Dev

如何用C重写此asm代码?

来自分类Dev

如何重写此C ++简单代码?

来自分类Dev

如何“向量化”此重复的C ++代码?

来自分类Dev

此代码如何工作?(GDI,C#)

来自分类Dev

C ++:如何通过此代码来制作此形状?

来自分类Dev

如何阅读jQuery的源代码?

来自分类Dev

如何阅读jQuery的源代码?

来自分类Dev

如何阅读以下代码?

来自分类Dev

如何阅读这个flatMap代码?

来自分类Dev

如何阅读导入对象的代码?

来自分类常见问题

如何阅读此GHC Core“证明”?

来自分类Dev

如何在jQuery中阅读此内容?

来自分类Dev

您将如何阅读此php行?

来自分类Dev

如何阅读此tcpdump手册页?

来自分类Dev

如何缩短此代码或此真实代码?

来自分类Dev

此❤代码如何工作?