相关疑难解决方法(0)

将整数转换为信号代码中的函数指针 - 为什么这样做?

我正在读一本书(UNIX环境中的高级编程),我正在阅读有关信号的部分.

使用信号功能时:

void (*signal(int signo, void (*func)(int)))(int);
Run Code Online (Sandbox Code Playgroud)

参数func可以是指向用户定义的函数的指针,也可以是SIG_ERR,SIG_DFL或SIG_IGN.

我的问题不在UNIX的部分,但我想提供背景知识.我真正想知道的是,这本书指出这些常数是不确定的:

#define SIG_ERR (void (*)())-1
Run Code Online (Sandbox Code Playgroud)

等等为0和1.

现在,我有一些不错的猜测,但为了节省时间 - 有人能告诉我这是做什么以及它为什么有效?

还有......呃......干净吗?假设我使用C++并与此C API交互,写这个的方法?

c c++ unix

10
推荐指数
1
解决办法
475
查看次数

标签 统计

c ×1

c++ ×1

unix ×1