2016-01-30 4 views

ответ

2

Константа используется, чтобы ее можно отличить от действительного указателя функции. Он не имеет никакого значения сам по себе (кроме того, что он отличается).

Например:

#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, 0 или 1, предпочитая говорить только символические константы (в ожидаемом месте, во всяком случае): <signal.h>.

Дальнейшее чтение: