C/Appendice/Librerie standard/signal.h: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 20:
 
Ma non è ancora stato specificato cosa deve restituire la funzione signal(): un puntatore a una funzione che ha un parametro di tipo int e che a sua volta non restituisce alcunché. In pratica, signal() deve restituire il puntatore a una funzione che ha le stesse caratteristiche di quella del proprio secondo parametro. A questo punto, si arriva al prototipo completo, ma molto difficile da interpretare a prima vista:
void (*signal)(int n_segnale, void gestore (int)))(int)
 
Per ovviare a questo problema di comprensibilità, anche se lo standard non lo prescrive, di norma, nel file signal.h si dichiara un tipo speciale, in qualità di puntatore a funzione con le caratteristiche del gestore di segnale:
 
typedef void (*sighandler_tSIGPTR) (int);
 
Così facendo, la funzione signal() può essere dichiarata in modo più gradevole:
 
sighandler_tSIGPTR signal (n_segnale, sighandler_tSIGPTR gestore);
 
== Tipo sig_atomic_t ==