size _t 为了增强程序的可移植性,便有了size_t ,不同系统上,定义size_t可能不一样。
size_t是标准C库中定义的,应为unsigned int,在64位系统中为 long unsigned int。
经测试发现,在32位系统中size_t是4字节的,在64位系统中,size_t是8字节的,这样利用该类型可以增加程序移植性。
size_t的定义
它的定义在/usr/include/linux/types.h
typedef _kernel_size_t size_t;
跟体系结构相关
而__kernel_size_t 定义在 /usr/include/asm/posix_types.h
安装的是内核的源码
asm-i386/posix_types.h
typedef unsigned int __kernel_size_t;
asm-1a64/posix_types.h
typedef unsigned long kernel_size_t;
size_t一般用来表示一种计数,比如有多少东西被拷贝等。例如:sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小。 它的意义大致是“适于计量内存中可容纳的数据项目个数的无符号整数类型”。所以,它在数组下标和内存管理函数之类的地方广泛使用。
本文介绍了size_t类型的定义及其在不同系统中的表现形式。size_t是一种用于增强程序移植性的无符号整型,在32位系统中通常为4字节,在64位系统中则为8字节。它常用于表示内存大小或元素数量。
855

被折叠的 条评论
为什么被折叠?



