C语言--数据长度、明确数据长度类型

C语言–数据长度、明确数据长度类型

A.数据长度

1)32位机下:
数据类型字节数取值范围
char1-128~127
unsigned char10~255
short2-32768~32767
unsigned short20~65535
int4-2147483648~2147483647
unsigned int40~4294967295
long4-2147483648~2147483647
unsigned long40~4294967295
float4-3.4×10-38~3.4×10-38
double8-1.7×10-308~1.7×10-308
bool10,1
---
short int2-32768~32767
long int4-2147483648~2147483647
long double8-1.7×10-308~1.7×10-308
2)64位机下
数据类型32位64位
char11
shot22
int44
long48
float44
double88
指针48

B.明确数据长度类型

1)例子

int8_t,int16_t,int32_t,int64_t
uint8_t,uint16_t,uint32_t,uint64_t等

2)作用

在A中罗列的变量类型的所需字节大小会随着系统的位数不同而变化,这会给代码在移植、兼容上带来一定的问题,因此出现了“明确数据长度类型”,其不管在什么平台上都是固定的8位、16位、32位、64位。

3)定义

明确数据长度类型intx_t是通过typedef定义的,即其不是一种新的数据类型,具体定义如下:

类型定义(32位机下)
int8_ttypedef signed char int8_t;
uint8_ttypedef unsigned char uint8_t;
int16_ttypedef signed short int16_t;
uint16_ttypedef unsigned short uint16_t
int32_ttypedef signed int int32_t;
uint32_ttypedef unsigned int uint32_t;
int64_ttypedef signed long long int64_t;
uint64_ttypedef unsigned long long uint64_t;

这些包含在stdint.h头文件。其中x为固定所需的位数,例如 int8_t 即占1个字节,范围为-128~127。

为了保证intx_t在任何位机下都是x位,在不同位机下(32位或64位)需要使用相应的基本变量类型,例如:

# if __WORDSIZE == 64
typedef long int                int64_t;
# else
__extension__
typedef long long int           int64_t;
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值