size_t
size_t
在头文件 | | |
---|---|---|
在头文件<stdio.h>中定义 | | |
在头文件<stdlib.h>中定义 | | |
在头文件<string.h>中定义 | | |
在头文件<time.h>中定义 | | |
在头文件<uchar.h>中定义 | | (自C11以来) |
在头文件<wchar.h>中定义 | | (自C95以来) |
typedef / *实现定义* / size_t; | | |
size_t是sizeof,alignof(自C11)和offsetof的结果的无符号整数类型。
注意
size_t
可以存储任何类型的理论上可能的对象(包括数组)的最大尺寸。
size_t通常用于数组索引和循环计数。 使用其他类型(如unsigned int)进行数组索引的程序可能会失败,例如, 当索引超过UINT_MAX或者依赖于32位模块化算法时,它是64位系统。
例
#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
int main(void)
{
const size_t N = 100;
int numbers[N];
for (size_t ndx = 0; ndx < N; ++ndx)
numbers[ndx] = ndx;
printf("SIZE_MAX = %lu\n", SIZE_MAX
size_t size = sizeof numbers;
printf("size = %zu\n", size
}
可能的输出:
SIZE_MAX = 18446744073709551615
size = 400
扩展内容
ptrdiff_t | 减去两个指针时返回的有符号整数类型(typedef) |
---|---|
offsetof | 从结构类型开始到指定成员(函数宏)的字节偏移量 |
| size_t 的C ++文档|