2008年4月24日星期四

size_t and ptrdiff_t

size_t 在 cstddef 头文件中定义的机器相关的无符号整型。该类型足以保存最大数组的长度。我发现 g++ 3.4.2 中不用
#include <cstddef> 也可以使用 size_t 类型。


两个指针减法操作的结果是标准库类型(library type) ptrdiff_t 的数据。与 size_t 类型一样, ptrdiff_t
也是一种与机器相关的类型, 在 cstddef 头文件中定义。 size_t 是 unsigned 类型,而 ptrdiff_t 则是
signed 整型。


这两种类型的差别体现了它们各自的用途:size_t 类型用于指明数组长度,它必须是一个正数;ptrdiff_t
类型则应保证足以存放同一数组中两个指针之间的差距,它有可能是负数。

没有评论: