size_t的秘密

作者: Stansosleepy | 来源:发表于2015-04-13 15:20 被阅读671次

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是有符号的,按照补码进行判断。

相关文章

网友评论

    本文标题:size_t的秘密

    本文链接:https://www.haomeiwen.com/subject/ajhkfttx.html