C数据类型(int)的一个小问题

sean717 2004-01-20 03:36:51
在钻一段源代码

发现作者都用型如
int32_t而不是简简单单int来定义变量,请问这样做是为什么?用int32_t而不是int来定义有是什么好处??

谢谢讨论
...全文
45 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazy_xbd 2004-01-23
  • 打赏
  • 举报
回复
同意!
nasi00 2004-01-22
  • 打赏
  • 举报
回复
为了适应不同的环境,增加程序的可移植性吧
antijpn 2004-01-22
  • 打赏
  • 举报
回复
上面各位的意思都对。
int是C语言的关键字,你使用int声明一个变量或者一个函数,那么直接就把这个变量或者函数和int这个数据类型挂钩。然而在各个不同的平台下,int的长度可能是不同的。这样对程序的可移植性造成了妨害。而int32_t不是C语言的关键字,你需要使用这样的东西的时候只要简单的在头文件里面用typedef指定int32_t是保存32位int型数据的那种数据类型的别名(饶口吧?^_^),这样的话,需要更换平台的时候只要简单的修改一下对int32_t的描述就行了
ShineBoy007 2004-01-22
  • 打赏
  • 举报
回复
顶!!
INSTINCTAO 2004-01-22
  • 打赏
  • 举报
回复
是VC特有的特殊定义类型表示一个32位的整型,与平台无关的,好象16位的也可以用这样的定义哦
taowen2002 2004-01-22
  • 打赏
  • 举报
回复
和gtk中一样,用typedef定义一些和机器无关,长度固定的数据类型。这样作的好处是可以不用为机器不同,导致溢出大小不同的问题。能够带来安全和性能上的好处。
doer_ljy 2004-01-22
  • 打赏
  • 举报
回复
大家的猜测都有可能!
我感觉应该是自定义类型
hongfeeling 2004-01-22
  • 打赏
  • 举报
回复
是为了代码的移植。
born20c 2004-01-20
  • 打赏
  • 举报
回复
不同平台上的INT类型有可能截然不同,比如SUN的平台和MS的平台,INT类型保存的顺序是相反的.
为了使程序在不同平台上出现相同的效果,可以把一些数据类型自己定义起来,更换了平台后,把定义换掉就可以了.
BalonFan 2004-01-20
  • 打赏
  • 举报
回复
int 是平台相关的,
int32_t估计是作者自定义的32位整数,在VC6中是__int32
不安分的灵魂 2004-01-20
  • 打赏
  • 举报
回复
int在windows环境下是32位,也就是4个字节。

你那个类型应该是在dos环境下编译器的新类型,int表示16位也就是2个字节,int32表示32位,也就是4个字节。
李马 2004-01-20
  • 打赏
  • 举报
回复
这也许是作者自定义的类型吧,看样子这是个32位的整型值。
作者是用这个类型的目的就是在不同的编译环境之中都能够使用到32位的整型。
譬如Win32 SDK之中的DWORD、LONG也都是这个道理。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧