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 类型定义在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。
信息
64位系统中
long long unsigned int
定    义
在cstddef头文件中
中文名
size_t
外文名
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_type类型与size_t的异同

    千次阅读 2019-07-02 21:47:54
    1.什么是size_type? size_type 如同 int 、float等 一样也是一种数据类型,不同之处在于size_type会适应机器,不同的机器size_type会有不同的长度;只要你使用了这个类型,就使得你的程序适合这个机器。与实际机器...

    1.什么是size_type?

    size_type 如同 int 、float等 一样也是一种数据类型,不同之处在于size_type会适应机器,不同的机器size_type会有不同的长度;只要你使用了这个类型,就使得你的程序适合这个机器。与实际机器匹配

    size_type是由string类型 和 vector类型 定义的 类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型

    vector<int> v;
    v.push_back(0);
    v.push_back(0);
    v.push_back(0);
    v.push_back(0);
    int i = v.size();
    

    这样的代码在C++编译器编译时,会出现编译警告,这是因为vector::size()返回值类型是size_type的无符号整数,但是 int类型是有符号整数, = 号两边的类型并不匹配,所以会抛出警告

    同时string::find()函数在查找字符串中的某一个字符时的返回值也是 size_type类型的,用size_type类型无论string对象多大,也不用担心越界的问题,同时 如果 在字符串中没有找到目标字符,则 find()会返回string::npos,它是与size_type类型相匹配的
    所以如果我们定义

    int pos = string.find('c',0);
    if(pos == string::npos) 
    {
    	cout << "没有找到!!"<<endl;
    }
    

    //来判断是否找到,那么因为pos是int类型,而 string::npos是size_type类型,两者可能就会完全不同,程序出错

    我们可以这样定义:

    string::sizetype pos = string.find('c',0);
    if(pos == string::npos) 
    {
    	cout << "没有找到!!"<<endl;
    }
    

    而且,如果使用int类型变量来保存string对象的长度,那么可能会出现问题:
    有些机器上的int变量的表示范围太小,甚至无法存储实际并不长的string对象。如在有16位int型的机器上,int类型变量最大只能表示32767个字符的string对象。而能容纳一个文件内容的string对象轻易就能超过这个数字,因此,为了避免溢出,保存一个string对象的size的最安全的方法就是使用标准库类型string::size_type().

    2.什么是size_t?

    size_t 类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版。
    它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。
    例如:我们常用的sizeof()操作的返回值就是 size_t类型的
    例如:在用下标访问元素时,vector使用vector::size_type作为下标类型,而数组下标的正确类型则是size_t。
    vector使用的下标实际也是size_t,源码是typedef size_t size_type。
    因为size_t类型的数据其实是保存了一个整数,所以它也可以做加减乘除,也可以转化为int并赋值给int类型的变量。

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

    展开全文
  • C语言size_t类型

    千次阅读 2020-04-22 12:41:12
    在C语言中,很多库参数的参数和返回值的数据类型是size_t,让很多初学都不理解。size_t不是C语言的关键字,也不是基本数据类型,而是C语言自定义的数据类型。 例如以下库函数的声明: size_t strlen(const char *s);...

    在C语言中,很多库参数的参数和返回值的数据类型是size_t,让很多初学都不理解。size_t不是C语言的关键字,也不是基本数据类型,而是C语言自定义的数据类型。

    例如以下库函数的声明:

    size_t strlen(const char *s);
    void *memset(void *s, int c, size_t n);
    char *strncpy(char *dest, const char *src, size_t n);
    void *malloc(size_t size);
    

    1、测试size_t类型

    关于size_t的定义,百度一下,发现有很多种说法,这些说法不一定准确,不同的操作系统,不同的C语言编译器和版本各不相同,我们用以下代码来测试一下。

    /*
     * 程序名:book.c,此程序用于测试size_t类型。
     * 作者:C语言技术网(www.freecplus.net) 日期:20190525。
    */
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
      size_t ii;
    
      ii=1234567890;
      printf("ii=%ld,sizeof(ii)=%ld\n",ii,sizeof(ii));
    
      ii=-1234567890;
      printf("ii=%ld,sizeof(ii)=%ld\n",ii,sizeof(ii));
    }
    

    运行效果
    在这里插入图片描述

    我采用的是64位的CentOS7,从上面测试的结果可以看出,size_t其实就是一个8字节的长整数。

    那么C语言编译器为什么要定义size_t?使用size_t可能会提高代码的可移植性、有效性或者可读性,它的定义大致如下:

    typedef unsigned long size_t;
    

    没什么特别。

    2、获取视频教程

    百万年薪程序员录制,《C/C++高性能服务开发基础》视频教程已在CSDN学院发布,优惠价12元,地址如下:
    https://edu.csdn.net/course/play/29402

    3、版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

    来源:C语言技术网(www.freecplus.net

    作者:码农有道

    如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发此文,让更多的人可以看到它,谢谢!!!

    展开全文
  • size_t详解

    万次阅读 多人点赞 2019-06-08 12:04:02
    size_t在C语言中就有了。 它是一种“整型”类型,里面保存的是一个整数,就像int, long那样。这种整数用来记录一个大小(size)。size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。 通常我们用...

    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为整型。

    示例程序:

     

    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类型的值
     

    展开全文
  • 【C/C++】size_t详解

    万次阅读 多人点赞 2019-09-16 12:55:47
    在标准C/C++的语法中,只有int、float、char、bool等基本的数据类型,至于 size_tsize_type 都是以后的编程人员为了方便记忆所定义的一些便于理解的由基本数据类型的变体类型。 一、实现 size_t是标准C库中...

    前言:

    使用size_t可能会提高代码的可移植性、有效性或者可读性,或许同时提高这三者。

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

    一、实现

    size_t是标准C库中定义的,它是一个基本的与机器相关的无符号整数的C/C + +类型, 它是sizeof操作符返回的结果类型,该类型的大小可选择。其大小足以保证存储内存中对象的大小(简单理解为 unsigned int就可以了,64位系统中为 long unsigned int)。通常用sizeof(XX)操作,这个操作所得到的结果就是size_t类型。

    类似的还有wchar_t, ptrdiff_t。

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

    通常,size_t和ptrdiff_t都是用typedef来实现的,如下你可能在某个头文件里找到类似的语句。而wchar_t在一些旧的编译器中可能是用typedef来实现,但是新的标准中wchar_t已经是C/C++语言的关键字,其地位与char、int等同。

    typedef unsigned int size_t;

    二、为什么需要size_t

    在标准C库中的许多函数使用的参数或者返回值都是表示的用字节表示的对象大小,比如malloc(n) 函数的参数n指明了需要申请的空间大小、memcpy(s1, s2, n)的最后一个参数表明需要复制的内存大小、strlen(s)函数的返回值表明了以’\0’结尾的字符串的长度(不包括’\0’)。

    或许你会认为这些参数或者返回值应该被申明为int类型(或者long或者unsigned),但是事实上并不是。C标准中将他们定义为size_t。标准中记载malloc、memcpy和strlen的声明:

    //malloc()
    void *malloc(size_t n);
    //memcpy()
    void *memcpy(void *s1, void const *s2, size_t n);
    //strlen()
    size_t strlen(char const *s);

    size_t还经常出现在C++标准库中,此外C++库中经常会使用一个相似的类型size_type。

    • size_t是全局定义的类型;size_type是STL类中定义的类型属性,用以保存任意string和vector类对象的长度
    • string::size_type 制类型一般就是unsigned int, 但是不同机器环境长度可能不同 win32 和win64上长度差别;size_type一般也是unsigned int

    三、可移植性问题

    早期的C语言并没有提供size_t类型,C标准委员会为了解决移植性问题将size_t引入,从而让程序有良好的可移植性。举例如下:

    对于一个可移植的标准memcpy(s1, s2, n)函数,其将s2指向地址开始的n个字节拷贝到s1指向的地址并返回s1。这个函数可以拷贝任何数据类型,所以参数和返回值类型应为void*。而源地址不应被改变,所以第二个参数s2类型应该为const void*

    问题在于我们如何声明个参数,它代表了源对象的大小:

    void *memcpy(void *s1, void const *s2, int n);

    3.1、使用int

    使用int类型在大部分情况下都是可以的,但是并不是所有情况下都可以。int是有符号的,它可以表示负数,但是大小不可能是复数。

    3.2、使用unsigned int

    使用unsigned int代替它让第三个参数表示的范围更大,大部分机器上其最大值是int最大值的两倍。尽管如此,但在给定平台上 int 和 unsigned int 对象的大小是一样的。因此使用unsigned int修饰第三个参数的代价与int是相同的:

    void *memcpy(void *s1, void const *s2, unsigned int n);  

    3.3、使用unsigned long int

    unsigned int可以表示最大类型的对象大小只有在整形和指针类型具有相同大小的情况下,比如说在IP16中,整形和指针都占2个字节16位;而在IP32上面,整形和指针都占4个字节32位。

    但在I16LP32架构上(整形是16位,长整形和指针类型时32位)则不够用了,比如摩托罗拉第一代处理器68000,处理器可能拷贝的数据大于65535个字节,但是这个函数第三个参数n不能处理这么大的数据。

    void *memcpy(void *s1, void const *s2, unsigned long  n); 

    当使用unsigned long int则可以在I16LP32架构上使用这个函数了,它可以处理更大的数据,且在IP16和IP32平台上也可行。

    3.4、问题

    但是在IP16平台上相比于使用unsigned int,你使用unsigned long可能会使你的代码运行效率大打折扣(代码量变大而且运行变慢)。在标准C中规定长整形(无论无符号或者有符号)至少占用32位,因此在IP16平台上支持标准C的话,那么它一定是IP16L32 平台。这些平台通常使用一对16位的字来实现32位的长整形。在这种情况下,移动一个长整形需要两条机器指令,每条移动一个16位的块。事实上,这个平台上的大部分的32位操作都需要至上两条指令。

    因此,以可移植性为名将memcpy的第三个参数申明为unsigned long而降低某些平台的性能是我们所不希望看到的。使用size_t可以有效避免这种情况。

    size_t类型是一个类型定义,通常将一些无符号的整形定义为size_t,在使用 size_t 类型时,编译器会根据不同系统来替换标准类型。每一个标准C实现应该选择足够大的无符号整形来代表该平台上最大可能出现的对象大小。在使用 size_t 类型时,编译器会根据不同系统来替换标准类型。

    四、size_t 与 sizeof()

    4.1、sizeof的作用

    sizeof是c的运算符之一,用于获取操作数被分配的内存空间,以字节单位表示。

    其操作数可以是变量,也可以是数据类型如int,、loat等。所以可以通过它来获取本地c库定义的基本类型的范围。

    4.2、sizeof的使用

    • 对于一般变量,形式2种:sizeof a 或 sizeof(a);
    • 对于数据类型,必须使用带括号的方式,如sizeof(int).

    4.3、sizeof和size_t

    常常会有人认为 在C/C++中 sizeof 是一个函数,而实际上C/C++中的sizeof 是一个运算符。sizeof 运算符的结果是 size_t ,它是由 typedef 机制定义出来的”新”类型。

    C/C++用 typedef 把 size_t 作为 unsigned int或 unsigned long 的别名,可以简单的理解为size_t 有如下两种定义

    typedef unsigned int size_t
    thpedef unsigned long size_t12
    //可以用%zd(C99标准新增)、%u、%lu 转换说明用于 printf() 显示 size_t 类型的值
    #include "stdio.h"
    int main(void)
    {
      size_t intsize = sizeof (int);
      printf("%zd\n", sizeof (int));
      printf("%zd\n", intsize);
      printf("%u\n", intsize);
      printf("%lu\n", intsize);
      return 0;
    }
    //输出结果为:
    //4
    //4
    //4
    //4
    
    展开全文
  • c++z中size_t和int

    千次阅读 2018-09-18 11:52:58
    size_t 是无符号的整型,int 是 有符号的整型。   1.关于size_t的定义 size_t是一种数据相关的无符号类型,它被设计得足够大以便能够内存中任意对象的大小。 在cstddef头文件中定义了size_t类型,这...
  • C语言中size_t类型详细说明【转载】

    万次阅读 多人点赞 2018-02-28 16:06:13
    在c语言的很多库函数中,函数原型中,参数类型都是size_t。但是在我们编写程序时size_t类型却很少有所使用。那么这个类型到底有什么作用呢使用size_t可能会提高代码的可移植性、有效性或者可读性,或许同时提高这三...
  • size_t 数据类型

    万次阅读 多人点赞 2018-09-17 19:53:13
    size_t size_t 是一些C/C++标准在stddef.h中定义的,size_t 类型表示C中任何对象所能达到的最大长度,它是无符号整数。 它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t 可能不一样。size_t在32位...
  • size_tsize_type

    千次阅读 多人点赞 2018-10-08 20:24:32
    为了使自己的程序有很好的移植性,C++程序员应该尽量使用size_tsize_type,而不是int,unsigned。 在标准C/C++的语法中,只有int float char bool等基本的数据类型,至于size_t,或size_type都是以后的编程人员...
  • Size_t和int区别

    千次阅读 多人点赞 2019-07-01 11:39:37
    (1)size_t和int size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。 在32位架构中被普遍定义为: typedef unsigned int size_t; 而在64位架构中被...
  • c++中size_t与ssize_t详解

    千次阅读 2018-10-14 18:11:05
    ----------------------------------size_t-------------------------------------- size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。 size_t的真实类型与操作系统有关,在32位架构中...
  • C 语言编程 — size_t 的意义与作用

    千次阅读 2020-05-15 00:16:23
    文章目录目录size_t 的作用size_t 的使用 size_t 的作用 在 C 语言程序中使用 size_tsize_type)可以提高代码的可移植性、有效性、可读性。实际上,在 K&D C 中并没有提供 size_t 类型,而是 C 标准委员会为了...
  • size_t类型总结

    万次阅读 2016-08-30 09:40:35
    1、sizeof返回的必定是无符号整形,在标准c中通过 typedef 将返回值类型定义为size_t.  若用printf输出size_t类型时,C99中定义格式符%zd;若编译器不支持可以尝试%u或%lu.  sizeof,获取操作数占用的内存空间字节...
  • 什么时候使用size_t?

    千次阅读 2019-06-20 21:41:50
    问题1:为啥不用int而是size_t这么古怪的类型,搞出好多类型不匹配的警告? 答:一个共识是:int类型一般小于等于数据线的宽度,而size_t类型一般为大于等于地址线宽度。而地址线宽度常常是大于...
  • linux中的size_t和ssize_t区别

    千次阅读 2018-08-09 09:15:16
    一:区别 (1)作用不同 size_t 反映内存中对象的大小(以字节为单位) ssize_t 供返回字节计数或错误提示的函数... typedef __kernel_size_t size_t;  而 __kernel_size_t 定义在 /usr/include/asm/posix...
  • size_t和int区别

    万次阅读 多人点赞 2018-12-09 12:19:38
    size_t和int  size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。 在32位架构中被普遍定义为: typedef unsigned int size_t; 而在64位架构中被定义...
  • size_t类型的含义

    千次阅读 2018-11-22 01:13:03
    size_t类型的含义 size_t一个基本的无符号整数的C/C++类型,它的全称是size type,就是一种用来记录大小的数据类型,也是sizeof操作符返回的结果类型。size_t是在基于无符号整数mem...#ifndef _SIZE_T_DEFINED #i...
  • printf("size of type : size_t is %ld\n", sizeof(size_t)); printf("size of type : int is %ld\n", sizeof(int)); printf("size of type : unsigned int is %ld\n", sizeof(unsigned int)); printf("size of ...
  • ssize_tsize_t详解

    万次阅读 多人点赞 2015-12-26 00:12:42
    对于赶时间的朋友,只看第一段就好了。  首先,我非常肯定以及确定的告诉你ssize_...size_t 就是无符号型的ssize_t,也就是unsigned long/ unsigned int (在32位下),不同的编译器或系统可能会有区别,主要是因为在3
  • 【C++】size_t的意义

    千次阅读 2019-06-03 17:30:12
    int小于等于数据线宽度,size_t大于等于地址线宽度。 size_t存在的最大原因可能是因为:地址线宽度历史中经常都是大于数据线宽度的。 在数据只有8位的年代,地址率先进入10位,12位,在数据16位的年代,地址也已经...
  • size_t详细解释

    万次阅读 多人点赞 2018-03-11 14:31:12
    size_t在C语言中就有了。 它是一种“整型”类型,里面保存的是一个整数,就像int, long那样。这种整数用来记录一个大小(size)。size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。 通常我们用...
  • print(size_t)格式

    千次阅读 2018-12-04 11:45:40
    警告里面的size_t是unsigned int 把%d改为%zu就没有警告了 size_t 和int的区别是 size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。 size_t的真实类型与操作系统有关,在32位架构中被...
  • C++ size_t介绍

    千次阅读 2018-07-18 23:10:00
    size_t类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版。它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。 中文名:size_t 外文名:unsigned int eg: 文件 size_tDemo.c ...
  • C++打印size_t和ssize_t和int64_t和uint64_t

    千次阅读 2018-08-29 18:37:57
    1.main.c //定义:typedef unsigned int size_t; typedef unsigned int uint32_t; typedef signed int ssize_t; int main(){ size_t a; ssize_t b; printf("a = %zu\n", a); // unsig...
  • C++中"size_t"详解

    万次阅读 多人点赞 2016-09-03 19:33:39
    size_t 类型 size _t 为了增强程序的可移植性,便有了size_t ,不同系统上,定义size_t可能不一样。经测试发现,在32位系统中size_t是4字节的,在64位系统中,size_t是8字节的,这样利用该类型可以增加...
  • 工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_tsize_t、ssize_t等数据类型,所以有必要对此进行梳理。 int_t同类 int_t 为一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义...
  • C语言~size_t详解

    千次阅读 2017-05-14 22:12:24
    1、sizeof返回的必定是无符号整形,在标准c中通过 typedef 将返回值类型定义为size_t.  若用printf输出size_t类型时,C99中定义格式符%zd;若编译器不支持可以尝试%u或%lu.  sizeof,获取操作数占用的内存空间字节数,...
  • error: 'size_t' does not name a type error: unknown type name 'size_t'  当时吾就把开发Caffe的程序员狠狠的痛斥了一遍!这样的错误谁受得了?  然后吾就不停的删除、下载、编译、修改……这个错误其实涉及...
  • size_type,size_t,int区别以及坑点

    千次阅读 2018-08-06 10:13:37
    STL容器中的一个成员变量,是一种用以保存不同容器的任意大小的类型,它与size_t一样,目的都是为了使用起来与具体机器无关。标准库类型将size_type定义为unsigned类型,比如string类的string::size_type 就是一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,039,219
精华内容 815,687
关键字:

size_t