size_t类型
#ifndef __SIZE_TYPE__
#ifdef _WIN64
#define __SIZE_TYPE__ long long unsigned int
#else
#define __SIZE_TYPE__ long unsigned int
#endif
#endif
总结:
- 64位架构中被定义为:long long unsigned int
- 32位架构中被定义为:long unsigned int
size_t 能存储理论上可行的任何类型(包括数组)对象的最大大小。size_t 通常用于数组下标
和循环计数
。
参数中带有size_t的函数通常会含有局部变量用来对数组的大小
或者索引
进行计算,在这种情况下,size_t
是个不错的选择。
适当地使用size_t
还会使你的代码变得如同自带文档。当你看到一个对象声明为size_t类型,你马上就知道它代表字节大小
或数组索引
,而不是错误代码或者是一个普通的算术值。
总结
- size_t能存储理论上可行的任何类型(包括数组)对象的最大大小
- size_t代表字节大小
- size_t代表数组索引
一般来说,数组索引和malloc()申请的size都不需要是负数,所以可以用size_t代替int,而且使用size_t,增加了不同系统间的可移植性。