1、这两个都是整形。但是ssize_t是有符号整形,size_t是无符号整形
2、据说不同机器上面代表的不同,32位机器是int 也就是4个字节,64位机器上面是long int也就是8个字节
3、在包含<sys/types.h>之后可以直接用这两种类型,通过64位机器的测试结果如下:
代码:
#include <sys/types.h>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("%d\n%d\n", sizeof(ssize_t), sizeof(size_t)); //8
printf("%d\n%d\n", sizeof(long int ), sizeof(int));
}
结果:
上面至少说明的所分配的内存大小是和long int 是一样的
这个博客给了更详细的查找原始定义方法:
http://blog.youkuaiyun.com/lalor/article/details/7426184