C 语言数据类型

一、C语言数据类型

C语言标准是这样规定的:int最少16位(2字节),long不能比int短,short不能比int长,具体位长由编译器开发商根据各种情况自己决定。在32位x86处理器上,short、int、long普遍的长度是2字节、4字节、4字节。当然如果编译器开发商愿意,long完全可以是8字节。
在 win64 下,long 也是 32 bit 的,4 字节。int则是64bit,8字节!

signed表示有符号,unsigned表示无符号。

数据类型占用空间范围
char1字节-128 ~ +127
short2字节-32768 ~ + 32767
unsigned short2字符0 ~ 65536
int4字节-2147483648 ~ +2147483647
unsigned int4字节0 ~ 4294967295
long2位机器:4字节
64位机器:8字节
-2147483648 ~ +2147483647
-9223372036854775808 ~ +9223372036854775807
long long8字节-9223372036854775808 ~ +9223372036854775807
float4字节
double8字节
指针32位机器:4字节
64位机器:8字节

在这里插入图片描述


二、C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别

int8_t、int16_t、int32_t、int64_t、uint8_t

类型定义是否有符号字节最小值最大值
int8_tsigned charSigned81-128127
uint8_tunsigned charUnsigned810255
int16_tshortSigned162-32,76832,767
uint16_tunsigned shortUnsigned162065,535
int32_tintSigned324-2,147,483,6482,147,483,647
uint32_tunsigned intUnsigned32404,294,967,295
int64_tlong longSigned648-9,223,372,036,854,775,8089,223,372,036,854,775,807
uint64_tunsigned long longUnsigned648018,446,744,073,709,551,615

size_t与ssize_t

size_t主要用于计数,如sizeof函数返回值类型即为size_t。在不同位的机器中所占的位数也不同,size_t是无符号数,ssize_t是有符号数。
在32位机器中定义为:typedef unsigned int size_t; (4个字节)
在64位机器中定义为:typedef unsigned long size_t;(8个字节)

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书香水墨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值