size_t是C内部预肆羡蚂定义的一个类型:
创新互联公司自2013年起,是专业互联网技术服务公司,拥有项目成都做网站、网站制作、成都外贸网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元青河做网站,已为上家服务,为青河各地企业和个人服务,联系电话:18982081108
typedef
unsigned
int
size_t
因此这句代码相当于:unsigned
int
size=sizeof()(long
long);
而sizeof()函数的功能就是派型求变量在内存中所占的字节数
因此,这句话的意思是将long
long类型在内存中所占的字节数赋值给裂埋无符号整型变量size
size_t是定义于stddef.h stdio.h stdlib.h string.h time.h wchar.h之中衡棚的一个无符号整数类早拦旦型。它也陆扰是sizeof和_Alignof运算符的结果类型。
一般size_t指代的是对象大小或者对象数量,它同时也是表示数组下标最安全的类型。
我再次认真的看了下耐灶 size_t的使用,
它是为了让启使程序可以跨平台,是代码具体较好的可移植性。
size_t在32位系统中占4个字节,而在64位系统占8个字节。
我想这是 系统判断其不正确的原因所在吧。
给出(size_t)istrlen(str1)那么就通类型比较了,就不存在问题了。
而int类型的i和strlen(str1)返回类型是 size_t在不同的操作系统可能就不一样。
所以,系统检测出昌滑扮错。
但是,我不知道为什么,改成 i (int)strlen(str1)就还是不行呢?
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为整型戚凳。