C++中的int64和int64_t有什么区别?

awa*_*oon 17 c++ int

我是c ++和编码的新手.所以这个问题可能是愚蠢的.使用int64或int64_t类型有什么区别.我看到其中一个软件开发人员在github上修改了他们的源代码,并将所有的int64修改为int64_t.

M.M*_*M.M 15

int64_t是一个标准C++类型,用于正好64位的有符号整数.int64不是标准类型.

第一个C++标准没有固定宽度类型.之前int64_t加入到标准C++中,不同的编译器实现所有64位类型,但他们用自己的名字为它(例如long long,__int64等)

可能的一系列事件是该项目最初将typedef int64支持64位类型的每个编译器.但是,一旦编译器开始更好地支持标准C++,或者一旦编写代码的人发现int64_t,代码就会被切换为使用标准名称.

  • @YohanesKhosiawan许先汉:任何人都不太可能定义一个32位类型并称之为`int64`.关键是,由于`int64`是非标准的,它可能根本不存在.另一方面,`int64_t`由所有符合C的编译器定义(只要它们至少支持1999版本的标准).任何使用`int64`的代码(除非它自己定义)都是不可移植的.将代码更改为使用`int64_t`是一个好主意. (2认同)