来源
#define SIG_DFL ((void (*) (int)) 0) *语句A*
#define SIG_IGN ((void (*) (int)) 1)
#define SIG_ERR ((void (*) (int)) -1)
linux的信号signal函数:
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
解析
- signal函数中的信号处理函数handler,可以是用户指定的一个信号处理函数,也可以是内核特定的函数指针SIG_DFL或SIG_IGN。
- 若信号句柄是SIG_DFL或SIG_IGN,则分别表示对捕获的信号采取忽略操作或者默认操作。
- 信号句柄SIG_DFL或SIG_IGN也必须是无返回值且具有一个整型参数的函数指针。
- void(*)(int)代表一个无返回值的且具有一个整型参数的函数指针类型(这里是一个空函数)
因此,语句A表示将“0”强制类型转换为无返回值且具有一个整型参数的函数指针。
参考文献