SIG_DFL、SIG_IGN 分别表示无返回值的函数指针,指针值分别是 0 和 1 。这两个指针值逻辑上讲是实际程序中不可能出现的函数地址值。
SIG_DFL:默认信号处理程序
SIG_IGN:忽略信号的处理程序
下面是一个指针值测试实例:
#include <stdio.h>
#define SIG_DFL ((void(*)(int))0)
#define SIG_IGN ((void(*)(int))1)
int main() {
int a = (int) SIG_DFL;
int b = (int) SIG_IGN;
printf("a = %d/n", a); //0
printf("b = %d/n", b); //1
return 0;
}
注:(void(*)())0 表示将常数 0 转型为“指向返回值为 void 的函数的指针”。
(SAW:Game Over!)