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 ++文档|