[转载]size_t与ssize_t

简介:

ssize_t是什么类型的?

解释一:为了增强程序的可移植性,便有了size_t,它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t可能不一样。

     在32位系统上 定义为 unsigned int 也就是说在32位系统上是32位无符号整形。在64位系统上定义为 unsigned long 也就是说在64位系统上是64位无符号整形。size_t一般用来表示一种计数,比如有多少东西被拷贝等。例如:sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小。 它的意义大致是“适于计量内存中可容纳的数据项目个数的无符号整数类型”。所以,它在数组下标和内存管理函数之类的地方广泛使用。而ssize_t这个数据类型用来表示可以被执行读写操作的数据块的大小.它和size_t类似,但必需是signed.意即:它表示的是signed size_t类型的。

typedef unsigned long size_t

解释二:ssize_t是signed size_t,

size_t是标准C库中定义的,应为unsigned int。定义为typedef int ssize_t。

而ssize_t:这个数据类型用来表示可以被执行读写操作的数据块的大小.它和size_t类似,但必需是signed.意即:它表示的是sign size_t类型的。

 

来源:http://ntern.blog.163.com/blog/static/12802432420103298171142/


本文转自五岳博客园博客,原文链接:http://www.cnblogs.com/wuyuegb2312/articles/2118769.html,如需转载请自行联系原作者


目录
相关文章
|
6月前
【Simulink】报错:Size mismatch (size [2 x 1] ~= size [1 x 1]). The size to the left is the size of the l
【Simulink】报错:Size mismatch (size [2 x 1] ~= size [1 x 1]). The size to the left is the size of the l
|
5月前
|
区块链
max code size exceeded
max code size exceeded
60 6
|
6月前
|
关系型数据库 MySQL
MySQL【问题 02】报错 1709 - Index column size too large. The maximum column size is 767 bytes. 可能是最简单的方法
MySQL【问题 02】报错 1709 - Index column size too large. The maximum column size is 767 bytes. 可能是最简单的方法
207 0
|
算法 C# C++
for (int i = 0; i < v.size() - 1; i++)
for (int i = 0; i < v.size() - 1; i++)
|
数据格式
batch_size的探索
batch_size的探索
87 0
The size of tensor a (4) must match the size of tensor b (3) at non-singletonThe size of
The size of tensor a (4) must match the size of tensor b (3) at non-singletonThe size of
901 0
malloc(): corrupted top size
malloc(): corrupted top size
920 0