【发布时间】:2011-12-27 20:33:35
【问题描述】:
C 标准(ISO/IEC 9899:2011 或 9899:1999)在 <stddef.h> 中定义了一个类型 ptrdiff_t。
POSIX 标准(ISO/IEC 9945;IEEE Std 1003.1-2008)在 <sys/types.h> 中定义了一个类型 ssize_t。
- 这些类型之间有什么区别(或者为什么两者都被认为是必要的)?
- 是否存在
ssize_t的基础基类型与ptrdiff_t不同的实现?
【问题讨论】:
-
也许是
ptrdiff_t的语义要求添加ssize_t?有时,带符号的大小类型很有用,如果您希望能够在中间让它代表-1。ptrdiff_t的语义是“两个指针之间的差异”,这并不完全是“大小”的语义。 -
在相关标准委员会中可能有点 NIH 偏执狂