Norma C (ISO/IEC 9899: 2011 lub 9899: 1999) definiuje typ ptrdiff_t
w <stddef.h>
.Jaka jest różnica między ssize_t i ptrdiff_t?
Standard POSIX (ISO/IEC 9945, IEEE Std 1003.1-2008) definiuje typ ssize_t
w <sys/types.h>
.
- Jaka jest różnica między tymi typami (lub dlaczego oba zostały uznane za konieczne)?
- Czy istnieje implementacja, w której bazowy typ bazowy dla
ssize_t
nie jest taki sam jak dlaptrdiff_t
?
Być może jest to semantyka 'ptrdiff_t', która wywołała dodanie' ssize_t'? Czasami użyteczny jest podpisany typ rozmiaru, jeśli chcesz mieć możliwość pośredniego przedstawienia go jako "-1". Semantyka 'ptrdiff_t' to" różnica między dwoma wskaźnikami ", która nie jest dokładnie semantyką" rozmiaru ". –
Prawdopodobnie trochę paranoi NIH w odpowiednich komitetach stadninowych –