其实没有啥用处。即便 long long 这个类型也是不建议使用的。
他们在特定平台上用于定义 int8, int16, int32, int64 ,size_t, uint8/16/32/64 , ptrdiff 等其它整数类型,他们的用途应当仅限于 typedef,自身不被单独使用。
- 如果你不在乎具体尺寸,只希望选择当前平台最合适的类型,那么用 int (其实用 auto 更好)。
- 如果你需要在乎具体尺寸,那么选择 int8, int16, int32, int64 _t 这一族类型更合适。
- short是一个「小于等于int但不能确定究竟是多大」的类型,long是一个「大于等于int但也不能确定究竟是多大」的类型,long long 则是一个「大于等于long但也同样不能确定是多大」的类型。这三个类型在实际场合除了作为定义 int6, int16, int32, int64 等类型的 typedef 原胚以外,并不应该在其它场合使用。
如果你需要一个整数用于存放指针,则应该使用 ptrdiff_t 或者 size_t 类型。这两个类型是保证一定能存放一个指针的。