1、为什么不是#define SIG_ERR (void (*) (int))-1
2、将 -1 变成函数指针发生了什么
google后,知道
1、在C里这样的代码是可以的
void fun();
int
main()
{
fun(12,34);
}
void fun(int i, int j)
{
}
2、只是将-1强制转换为一个指针,通过编译。就像#define NULL (void *)0。可以将SIG_ERR跟其他的信号理解的一样,是一个整数。
参考:http://groups.google.com/group/comp.lang.c.moderated/browse_thread/thread/57850bd48d73d4ad?pli=1