的的int64_t定义(Definition of int64_t)

2019-06-21 08:30发布

我是新来的C / C ++,所以我有一对夫妇约一个基本类型的问题:

一)你能向我解释之间的区别int64_tlonglong int )? 在我的理解,都是64个整数。 是否有任何理由要选择一个比其他?

B)我想查找的定义int64_t在网络上,但没有成功。 有权威人士我需要这样的问题需要咨询?

c)对于代码中使用int64_t编译,我目前包括<iostream> ,这没有多大意义的我。 是否有其他还有包括提供的声明int64_t

Answer 1:

一)你能向我解释之间的区别int64_tlonglong int )? 在我的理解,都是64个整数。 是否有任何理由要选择一个比其他?

前者是一个符号整型恰好与64位。 后者是一个带符号的整数类型与至少 32位。

B)我想查找的定义int64_t在网络上,但没有成功。 有权威人士我需要这样的问题需要咨询?

http://cppreference.com这里涵盖了这一点: http://en.cppreference.com/w/cpp/types/integer 。 的权威来源,然而,这是C ++标准 (该特定位可在§18.4整数类型[cstdint]中找到)。

c)对于代码中使用int64_t编译,我包括<iostream> ,这没有多大意义的我。 是否有其他还有包括提供的声明int64_t

据中声明<cstdint><cinttypes>下命名空间std ),或在<stdint.h><inttypes.h> (在全局命名空间)。



Answer 2:

int64_t由C99标准保证是在实现它的平台64 精确地宽位,有一个没有这样的保证long为至少32位,因此可以更。

§7.18.1.3精确宽度的整数类型1 typedef名intN_t表示具有宽度N,没有填充比特,和一个二的补码表示的符号整数类型。 因此,表示中int8_t恰好与8位的宽度的符号的整数类型。



Answer 3:

int64_ttypedef ,你可以发现,在<stdint.h>使用C



Answer 4:

的int64_t应该是64个位宽的任何平台(因此而得名)上,而长可以具有在不同平台上不同的长度。 特别是,的sizeof(长)通常是4,即。 32位。



文章来源: Definition of int64_t