日期:2014-05-16  浏览次数:20651 次

APUE+macro
小弟在APUE上面看到一个macro的声明如下
#define SIG_ERR  (void(*)())-1
#define SIG_DFL  (void(*)())0
#define SIG_IGN  (void(*)())1
各位看官,能不能解释下这种macro吗?
------解决方案--------------------
强制类型转换为一个函数指针
------解决方案--------------------
引用:
引用:

那个数字有什么好解释的,区分而已
看前面宏的名字

后面不加数字可以不?


不加数字就没有意义了。
信号处理函数是一个地址,这几个数也是一个地址。系统保证你的处理函数的地址不会是0,-1,1,因此就可以区分各种情况了,是错误,默认,忽略,还是处理