android size_t在哪个头文件,size_t

size_t 类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版。它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。

例如:bitset的size操作返回bitset对象中二进制位中1的个数,返回值类型是size_t。

例如:在用下标访问元素时,vector使用vector::size_type作为下标类型,而数组下标的正确类型则是size_t。vector使用的下标实际也是size_t,源码是typedef size_t size_type。

中文名

size_t

外文名

unsigned int定    义

在cstddef头文件中

64位系统中

long long unsigned int

size_t来源

编辑

size_t是标准C库中定义的,在64位系统中为long long unsigned int,非64位系统中为long unsigned int。

数据类型"socklen_t"和int应该具有相同的长度,否则就会破坏BSD套接字层的填充。POSIX开始的时候用的是size_t,Linus Torvalds(他希望有更多的人,但显然不是很多)努力向他们解释使用size_t是完全错误的,因为在64位结构中 size_t和int的长度是不一样的,而这个参数的长度必须和int一致,因为这是BSD套接字接口标准。最终POSIX的那帮家伙找到了解决的办法,那就是创造了一个新的类型"socklen_t"。Linus Torvalds说这是由于他们发现了自己的错误但又不好意思向大家伙儿承认,所以另外创造了一个新的数据类型 。

size_t使用

编辑

一个基本的无符号整数的C / C + +类型,它是sizeof操作符返回的结果类型,该类型的大小可选择。因此,它可以存储在理论上是可能的任何类型的数组的最大大小。换句话说,一个指针可以被安全地放进为size_t类型(一个例外是类的函数指针,但是这是一个特殊的情况下)。 size_t类型通常用于循环、数组索引、大小的存储和地址运算。虽然size_t可以存储一个指针,它的目的是更好地使用另一个unsigned整数类型uintptr_t。在某些情况下,使用size_t类型是更为有效,比习惯性使用无符号类型的程序会更安全。

size_t是在基于无符号整数memsize类型的C / C + +的标准库中定义的。C语言中,此类型位于头文件stddef.h中,而在C++中,则位于cstddef中。

size_t实现方式

编辑

在C++中,设计size_t 就是为了适应多个平台的。size_t的引入增强了程序在不同平台上的可移植性。size_t是针对系统定制的一种数据类型,一般是整型,因为C/C++标准只定义一最低的位数,而不是必需的固定位数。而且在内存里,对数的高位对齐存储还是低位对齐存储各系统都不一样。为了提高代码的可移植性,就有必要定义这样的数据类型。一般这种类型都会定义到它具体占几位内存等。当然,有些是编译器或系统已经给定义好的。经测试发现,在32位系统中size_t是4字节的,而在64位系统中,size_t是8字节的,这样利用该类型可以增强程序的可移植性。

size_t详细解释

编辑

size_t在C语言中就有了。

它是一种“整型”类型,里面保存的是一个整数,就像int、long那样。这种整数用来记录一个大小(size)。size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。

通常我们用sizeof(XXX)操作,这个操作所得到的结果就是size_t类型。

因为size_t类型的数据其实是保存了一个整数,所以它也可以做加减乘除,也可以转化为int并赋值给int类型的变量。

类似的还有wchar_t, ptrdiff_t。

wchar_t就是wide char type,“一种用来记录一个宽字符的数据类型”。

ptrdiff_t就是pointer difference type,“一种用来记录两个指针之间的距离的数据类型”。

通常,size_t和ptrdiff_t都是用typedef来实现的。你可能在某个头文件里面找到类似的语句:

typedef unsigned int size_t;

而wchar_t则稍有不同。在一些旧的编译器中,wchar_t也可能是用typedef来实现,但是新的标准中wchar_t已经是C/C++语言的关键字,wchar_t类型的地位已经和char, int的地位等同了。

在标准C/C++的语法中,只有int float char bool等基本的数据类型,至于size_t或size_type都是以后的编程人员为了方便记忆所定义的一些便于理解的由基本数据类型的变体类型。

例如:typedef int size_t;定义了size_t为整型。

size_t示例代码

编辑

int i;//定义一个int类型的变量i

size_t size = sizeof(i);//用sizeof操作得到变量i的类型的大小

//这是一个size_t类型的值

//可以用来对一个size_t类型的变量做初始化

i = (int)size;//size_t类型的值可以转化为int类型的值

char c = 'a';//c保存了字符a,占一个字节

wchar_t wc = L'a';//wc保存了宽字符a,占两个字节

//注意'a'表示字符a,L'a'表示宽字符a

int arr[] = {1,2,3,4,5};//定义一个数组

int *p1 = &arr[0];//取得数组中元素的地址,赋值给指针

int *p2 = &arr[3];

ptrdiff_t diff = p2-p1;//指针的减法可以计算两个指针之间相隔的元素个数

//所得结果是一个ptrdiff_t类型

i = (int)diff;//ptrdiff_t类型的值可以转化为int类型的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jqgrid mvc_将JQGrid与Spring MVC和Gson集成

jqgrid mvc我在一个单页面应用程序上工作,我想在使用Spring MVC的应用程序的一部分中使用网格功能。 自从我上次使用JQGrid以来已经有一段时间了,找到让我起床所需的信息有点困难。 在这篇文章中,我想整理所有信息并将其放入教程中&#xff0…

javadocs_不会吸引人的JavaDocs源样本

javadocsJavaDoc源代码嵌入很烂! 我喜欢JavaDoc,但年龄不理想。 当您使用其他工具(例如,在Microsoft世界中)时,嵌入式示例突然变得惊人,并且内置了“搜索”功能! 我们为什么不能拥…

html语义化有哪些优点,语义化的HTML结构到底有什么好处?

相信大家都知道html和css,知道html结构和css表现分离,知道html语义化,这些都是这几年的热门关键字。语义化的html在国内也是一两年前才开始被追捧的,看看现在群里谈论的html结构,关于html结构的面试题,语义…

vert.x 分布式锁_使用Vert.x进行响应式开发

vert.x 分布式锁最近,似乎我们正在听到有关Java的最新和最好的框架的消息。 Ninja , SparkJava和Play等工具; 但是每个人都固执己见,使您感到需要重新设计整个应用程序以利用它们的出色功能。 这就是为什么当我发现Vert.x时令我感到宽慰的原因…

c语言 char c1,c2; for (c1='0',C语言-5循环结构(PPT)复习课程.ppt

C语言-5循环结构(PPT)复习课程.ppt第五章 循环结构程序设计;课程引入;第五章 循环结构程序设计;5.1 while 语句;例1:求;1. do-while循环语句的形式 do 循环体 while(条件表达式); ;表达式0?;【例5.3】while和do-while循环的比较。;一般格式&a…

jvm高并发_JVM上的高并发HTTP客户端

jvm高并发HTTP可能是最流行的应用程序级别协议,并且有许多库在网络I / O之上实现它,这是常规I / O的一种特殊(面向流)情况。 由于所有I / O都有很多共同点1 ,所以让我们开始对其进行一些讨论。 我将集中讨论具有大量并…

html双击变成可编辑,jquery 实现双击编辑并保存

jquery 实现双击编辑并保存Jesse2013-12-11 19:47:001153最近在做一个数据修改的例子,一个个点开修改很麻烦,于是就想到ecshop后台里的 只需单击就以编辑了,在网上查阅资料,就想到双击修改,失去鼠标焦点后post执行HTML…

jmeter 采样器作用_实施自定义JMeter采样器

jmeter 采样器作用随着我们采用不同的体系结构和实现方式,对通用压力测试工具的需求不断增长。 关于负载测试, Apache Jmeter是最知名的工具之一。 它支持许多协议,例如ftp http tcp,并且可以轻松地用于分布式测试。 Jmeter还为…

html 闪烁文本,HTML最简单的文字闪烁代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Titlekeyframes blink{0%{opacity: 1;}50%{opacity: 1;}50.01%{opacity: 0;}100%{opacity: 0;}}-webkit-keyframes blink {0% { opacity: 1; }50% { opacity: 1; }50.01% { opacity: 0; }100% { opacity: 0; }}-moz-keyframes blin…

xp系统 javafx_使用JavaFX构建React系统

xp系统 javafxJavaFX是用于在Java中构建图形应用程序的新标准库,但是许多程序员仍然对Swing甚至(高音)AWT感到困惑。 在Java诞生20年来,发生了很多事情。 两年前,当我开始研究Speedment UI的JavaFX库时,我发…

html手机端图片点击放大缩小快捷键,PS放大缩小图片的快捷键是什么?PS放大缩小图片的操作技巧...

PS放大缩小图片的快捷键是什么?PS怎么放大缩小图片?使用PS处理图片可是个精细的活儿,为了让图片处理得更加完美,我们经常需要将图片放大来处理,修改好之后又要缩小图片看下整体效果,这样来回切换其实挺麻烦…

webstorm html代码提示设置,Webstorm设置代码提示

下载路径: https://github.com/virtoolswebplayer/ReactNative-LiveTemplate本插件可以配合Webstorm设置代码提示。Mac下安装Webstorm2016.1为例安装路径在终端:$ cd ~/Library/Preferences/$ ls找到Webstorm版本$ open WebStorm2016.1先将ReactNative.x…

滑动拼图验证码操作步骤:_拼图项目:一个不完整的难题

滑动拼图验证码操作步骤:马克雷因霍尔德(Mark Reinhold)最近提议延迟Java 9,以花更多的时间完成项目Jigsaw,这是即将发布的版本的主要功能。 虽然这个决定肯定会使Java的厄运论者重回舞台,但我个人感到很轻…

document中输出html字符串流,HTML DOMDocument从段落后面的标签中获取字符串

我想解析html文档。我需要h2之后所有p的内容。要解析的html :(示例)Lorem ipsumLorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridic…

arcgis adf数据_使用ADF列表视图的主从数据

arcgis adf数据从UI角度来看,最近ADF Faces 表组件不再被认为很酷。 对于显示数据集合, 列表视图今天应该很酷。 这并不意味着我们根本不应该使用af:table 。 在某些情况下(经常是:)),表比列表视图更适合。…

jmeter添加html,Jmeter 报告可视化 —— 配置生成测试报告仪表板,Jmeter + Jenkins 自动化构建生成 HTML 报告...

目录一、jmeter报告仪表板相关信息二、文件修改说明三、jmeter.properties文件配置四、user.properties文件配置五、新建jtl报告目录六、复制jmeter.properties文件并重命名七、写批处理bat文件八、准备jmeter测试计划脚本九、本地调试bat文件十、Jenkins自动化构建一、jmeter报…

gradle java_Java EE,Gradle和集成测试

gradle java在过去的几年中,Apache Maven已成为Java和Java EE项目的事实上的构建工具。 但是从两年前开始, Gradle便获得了越来越多的用户。 在我之前的文章( http://www.lordofthejars.com/2015/10/gradle-and-java-ee.html )之后…

javafx 内存占用_JavaFX:TouchGesture内存泄漏?

javafx 内存占用在我的一个项目中,最近几天我在与内存泄漏作斗争(是……“耦合”),我得出的结论是可能存在与触摸/滚动手势有关的问题。 在下面的示例中,我有两个按钮。 第一个创建具有一千行的列表视图,第…

手机单选按钮 html5,@html剃刀单选按钮mvc5(@html razor radio buttons mvc5)

这里是我的视图模型public class UserResponseModel{public string QuestionId { get; set;}public string QuestionText { get; set; }public bool IsChecked { get; set; }}所以&#xff0c;对于这个复选框精美作品for (var i 0; i < Model.UserResponses.Count; i){Html…

cucumber jvm_用Cucumber JVM编写BDD测试

cucumber jvmCucumber JVM是编写BDD测试的出色工具。在本文中&#xff0c;我想对Cucumber JVM的BDD进行介绍。 让我们开始吧… 什么是BDD&#xff1f; 简而言之&#xff0c;BDD试图解决“通过示例理解需求”的问题 BDD工具 有许多可用于BDD的工具&#xff0c;有趣的是&#…