Linux中的sighandler_t typedef语句?

问题描述 投票:0回答:1

[在Linux中学习Signals时,我遇到了这个声明:

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

处理程序函数必须返回void,并且其原型具有以下形式:

void my_handler (int signo);

Linux使用typedefsighandler_t定义此原型。

[当我看到signal()功能的Linux手册页时,就在其中。

但是我不明白这里的typedef语句是什么意思。

任何人都可以解释typedef sighandler_t的含义吗?

c linux signals typedef
1个回答
1
投票

这是一些C魔术,它说明以下内容:

typedef void (*sighandler_t)(int);

有一个称为sighandler_t的特殊类型,它是一个使用整数参数且不返回任何内容的函数的指针。

sighandler_t signal(int signo, sighandler_t handler);

有一个函数signal,它使用一个名为signo的整数和一个函数指针handler作为参数,并返回一个函数指针。

typedef的字面意思是“类型定义”,用于定义复杂类型的占位符,例如函数指针或结构等。

函数指针的定义超出了此问题的范围,但是可以认为是用户编写的命令,框架将调用该命令,而并不确切知道该函数将是什么。

© www.soinside.com 2019 - 2024. All rights reserved.