gpt4 book ai didi

c - SIG_IGN 宏定义中的数字 1 是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:19 25 4
gpt4 key购买 nike

#define SIG_IGN     (void (*)(int))1
#define SIG_HOLD (void (*)(int))5
#define SIG_ERR ((void (*)(int))-1)

我知道 (void (*)(int)) 是什么意思:将 unknown_name 转换为指向返回 void 的函数 (int) 的指针。

但是下面的1是什么意思呢?

最佳答案

使用常量是为了将其与有效的函数指针区分开来。它本身没有任何意义(除了与众不同)。

例如:

#define SIG_DFL ((__sighandler_t)0)     /* default signal handling */
#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
#define SIG_ERR ((__sighandler_t)-1) /* error return from signal */

这些常量值都不是您可以调用的有效函数地址。因此,它们作为特殊值非常有用,可用于说明如何处理信号。

顺便说一下,POSIX 没有提到这些常量 -1 , 01 ,宁愿只说符号常量(无论如何在预期的地方): <signal.h> .

进一步阅读:

关于c - SIG_IGN 宏定义中的数字 1 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35105452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com