Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >size_t与ssize_t

size_t与ssize_t

作者头像
Java架构师必看
发布于 2021-03-22 07:30:35
发布于 2021-03-22 07:30:35
1.4K0
举报
文章被收录于专栏:Java架构师必看Java架构师必看

size_t与ssize_t

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

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

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

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

本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
u12a u12s_utf8mb3
size_t是C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。size_t在32位架构上是4字节,在64位架构上是8字节,在不同架构上进行编译时需要注意这个问题。而int在不同架构下都是4字节,与size_t不同;且int为带符号数,size_t为无符号数。
全栈程序员站长
2022/11/04
5130
u12a u12s_utf8mb3
【C++】size_t全面解析与深入拓展
size_t 是一种无符号整数类型,其主要用途是表示对象大小(比如内存大小、数组索引等),它在C++标准库中被广泛使用,比如sizeof返回值、STL容器的.size()方法、动态内存分配函数的参数等等。
CSDN-Z
2025/01/24
1410
【C++】size_t全面解析与深入拓展
int8与int16_将int型转为char型
工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t等数据类型,所以有必要对此进行梳理。
全栈程序员站长
2022/09/21
1.8K0
认识 size_t 和指针类型的大小
size_t 概述: size_t 类型定义在 C++ 中的 cstddef 头文件中,该头文件文件是 C 标准库的头文件 stddef.h 的 C++ 版。它是一个与机器相关的 unsigned 整型类型,其大小足以保证存储内存中对象的大小。
恋喵大鲤鱼
2022/05/09
3.7K0
认识 size_t 和指针类型的大小
C/CPP关于size_t类型的作用与重要性
  在标准C库中的许多函数使用的参数或者返回值都是表示的用字节表示的对象大小,比如说malloc(n) 函数的参数n指明了需要申请的空间大小,还有memcpy(s1, s2, n)的最后一个参数,表明需要复制的内存大小,strlen(s)函数的返回值表明了以’\0’结尾的字符串的长度(不包括’\0’),其返回值并不是该字符串的实际长度,因为要去掉’\0’。   或许你会认为这些参数或者返回值应该被申明为int类型(或者long或者unsigned),但是事实上并不是。C标准中将他们定义为size_t。标准中记载malloc的申明应该出现在,定义为:
CtrlX
2022/10/04
9700
size_t和int区别
size_t和int size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。
全栈程序员站长
2022/09/06
8380
《改善C程序代码的125个建议》-防止整数类型产生回绕与溢出
以下内容摘抄自《改善C程序代码的125个建议》: 建议2:防止整数类型产生回绕与溢出 到C99为止,C语言为我们提供了12个相关的数据类型关键字来表达各种数据类型。如表1-2所示,K&R C提供了7
用户1631416
2018/04/12
2K0
《改善C程序代码的125个建议》-防止整数类型产生回绕与溢出
uint32 t java_数据类型 — uint32_t 类型「建议收藏」
unsigned char, unsigned int, uint32_t, size_t, uint64_t, unsigned long int,
全栈程序员站长
2022/10/04
1.5K0
Linux64位程序移植
1 概述 Linux下的程序大多充当服务器的角色,在这种情况下,随着负载量和功能的增加,服务器所使用内存必然也随之增加,然而32位系统固有的4GB虚拟地址空间限制,在如今已是非常突出的问题了;另一个需要改进的地方是日期,在Linux中,日期是使用32位整数来表示的,该值所表示的是从1970年1月1日至今所经过的秒数,这在2038年就会失效,但是在64位系统中,日期是使用64位整数表示的,基本上不用担心其会失效。在这种情况下,将服务器移植到64位系统下,几乎成了必然的选择。要获得能在64位系统下运行的程序,特
三丰SanFeng
2018/01/16
4.6K0
sizeof 操作符详解
 1.定义:sizeof是何方神圣?sizeof乃C/C++中的一个操作符(operaC/C++
Java架构师必看
2021/03/22
7930
size_t和int总结
size_t 和 int 在 C 和 C++ 语言中都是数据类型,但它们有本质的区别和用途。
ljw695
2024/10/18
1830
C语言整型数据类型
 int数据类型的位数为16位,short int数据类型的位数也是16位。而long int的位数为32位,可用来存储比较大的整数。
Java架构师必看
2021/03/22
2.7K0
size_type、size_t、differentce_type以及ptrdiff_t
目录(?)[-] size_type size_t different_type ptrdiff_t size_t是unsigned类型,用于指明数组长度或下标,它必须是一个正数,std::size_
猿人谷
2018/01/17
9830
size_t类型
size_t在标准C库中定义,是sizeof()的返回类型。应为unsigned int,在64位系统中为 long unsigned int。 C 中头文件:#include<cstddef.h> C++中:#include<cstddef>
青木
2018/05/28
9620
c++ uint32_t_int32和uint32
我们都知道,C语言的基本类型就char, short, int 等。但是我们在看其他源码时经常碰到int32_t, int8_t这种形式的定义,他们是什么呢。其实他们就是基本类型的typedef重定义。 也就是不同平台下,使用以下名称可以保证固定长度。 1字节 int8_t —— char 2字节 int16_t —— short 4字节 int32_t —— int 8字节 int64_t —— long long
全栈程序员站长
2022/11/06
2.9K0
c++ uint32_t_int32和uint32
C语言宏定义技巧
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。
Java架构师必看
2021/03/22
2.3K0
C和指针学习
这个名字是编译器默认的输出名。如果要修改可执行文件的名字可以加-o参数:gcc -o myexec main.c
Java架构师必看
2021/07/13
3290
C++基础篇之什么是数据类型
使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。
iOS程序应用
2022/12/14
2480
【☠️️社死现场の老板来了☠️️】小伙,搞C语言嵌入式开发这么久了,还不知道u8、u16、u32、s8、s16、s32是什么意思啊?
糖糖小伙,你搞C语言嵌入式开发这么久了,我来考考你u8、u16、u32、s8、s16、s32是什么意思啊?你要是回答的让我满意了,给你升职加薪,从此走上人生巅峰呦~
全栈程序员站长
2022/11/03
4.5K0
【☠️️社死现场の老板来了☠️️】小伙,搞C语言嵌入式开发这么久了,还不知道u8、u16、u32、s8、s16、s32是什么意思啊?
原来C++变量在内存中不是紧密排列的,聊聊内存对齐
今天我们来聊聊C++当中的内存占用,简单回顾一下C++当中的基本变量类型,以及它们分别占用的内存,从而方便我们对程序中使用的变量占用的内存有一个大概的认知。
TechFlow-承志
2022/12/22
1.4K0
原来C++变量在内存中不是紧密排列的,聊聊内存对齐
相关推荐
u12a u12s_utf8mb3
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文