Lo standard C (ISO/IEC 9899: 2011 o 9899: 1999) definisce un tipo ptrdiff_t
in <stddef.h>
.Qual è la differenza tra ssize_t e ptrdiff_t?
Lo standard POSIX (ISO/IEC 9945; IEEE Std 1003.1-2008) definisce un tipo ssize_t
in <sys/types.h>
.
- Qual è la differenza tra questi tipi (o perché entrambi sono stati ritenuti necessari)?
- Esiste un'implementazione in cui il tipo di base sottostante per
ssize_t
non è lo stesso diptrdiff_t
?
forse è la semantica di 'ptrdiff_t' che ha richiesto l'aggiunta di' ssize_t'? A volte, un tipo di dimensione firmata è utile, se vuoi essere in grado di avere immediatamente un valore '-1'. La semantica di 'ptrdiff_t' è" differenza tra due puntatori ", che non è esattamente la semantica della" dimensione ". –
Probabilmente un po 'di paranoia NIH nei comitati stadards rilevanti –