int int_32t int_64t等"精确宽度类型如何理解" ?

转载自http://blog.sina.com.cn/s/blog_4b9eab320100sdex.html

32位平台:

char  1个字节8位

short  2个字节

int    4个字节

long   4个字节

long long   8个字节

float   4个字节

double    8个字节

指针    4个字节

64位平台:

char   1个字节

short   2个字节

int     4个字节

long 8个字节

long long   8个字节

float   4个字节

double   8个字节

指针  8个字节

因为long在不同的平台所占用的字节数不一样,为了保证平台的通用性,程序中尽量不要使用long数据库型。可以使用固定大小的数据类型宏定义:

还有一个原因就是:

在不同位宽的芯片中,比如8bit的芯片, 在表示8bit的数据时,总不能用char来表示吧 ,因此会重定义数据类型int_8t。

在16bit的芯片中也是同样的道理,变量用short int来表示不合适,因此需要重定义数据类型typedef short int  int_16t;

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: int32_t和int都是整数类型,但int32_t是一种特殊的整数类型,保证在所有编译器和操作系统上都是32位(即占4个字节的空间)。而int则可能是32位或64位,取决于不同的编译器和操作系统。因此,如果您希望保证程序在不同的系统上表现一致,并且需要一个具有固定大小的整数类型,那么int32_t就是一个不错的选择。 ### 回答2: int32_t是C/C++语言中一个定义了精确宽度的整数类型,应用于32位系统中。int32_t类型的变量占据32位(4个字节)的存储空间,并且其范围是-2147483648到2147483647。这个类型是通过stdint.h头文件定义的。 而int是C语言中的一个整数类型,其大小和长度是与特定的编译器和操作系统相关的,通常情况下在32位系统中占据4个字节。int类型的变量范围根据系统的不同而不同,但通常是-2147483648到2147483647,与int32_t类型相同。 所以可以说,int32_t是一个明确指定了宽度的整数类型,而int是因为受到编译器和操作系统的影响可能会有不同的宽度int32_t可以确保在不同平台上拥有相同的宽度,使得程序的可移植性更强。 但需要注意的是,尽管int32_t被定义为32宽度,但它并不一定可用于所有的系统,因为某些小型系统可能不支持32位的整数类型。 ### 回答3: int32_t是一种固定大小的整数类型,它有32位(4个字节),可以表示范围从-2,147,483,648到2,147,483,647的整数值。int32_t是在C标准库头文件stdint.h中定义的。它是尽量保证在不同平台上都有相同的位数和表示范围的类型。 相比之下,int是一种整数类型,其大小在不同平台上可能会有所不同。在大多数系统中,int通常是32位或者更大的4字节整数类型,但也可能是较小的2字节整数类型。因此,int的大小是系统相关的,没有统一的规定。 由于int32_t是一种固定大小的整数类型,所以在跨平台开发时,可以确保使用int32_t在不同系统上都有相同的大小和表示范围。这使得代码更具可移植性,并且可以减少因为整数溢出或大小不一致而引发的错误。 总之,int32_t是一种具有固定大小(32位)的整数类型,而int的大小在不同平台上可能有所不同。在跨平台开发时,如果需要确保整数类型的大小和表示范围一致,可以使用int32_t类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值