signal.h中的宏定义SIG_DFL及SIG_IGN

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的函数的指针”。

posted on 2014-02-19 10:40  屁屁侠  阅读(28835)  评论(0编辑  收藏  举报

导航