size_t
本质上来说size_t它是一种“整型”类型,里面保存的是一个整数,就像int,long那样。这种整数用来记录一个大小(size) 。
size_t的定义
在stddef.h中定义
typedef unsigned int size_t(32位)
typedef unsigned long size_t(64位)
示例代码
#include <stdio.h>
int main(){
size_t a=90;
size_t b=-1;
printf("the a is %d,the b is %d\n",a,b);
if (a>b){
printf("a is bigger than b");
}
int c=90;
int d=-1;
printf("the c is %d,the d is %d\n",a,b);
if (c>d){
printf("c is bigger than d");
}
}
调用gdb
查看a\b\c\d的值(64位)
a=0x5a
b=0xffffffffffffffff
c=0x5a
d=0xffffffff
可以看出,b和d都是保存的补码,但是在判断大小的时候a>b=False,c>d=True
size_t是unsigned(无符号),所以判断大小的时候按照“字面大小进行判断”,int是有符号的,按照补码进行判断。