AnT*_*AnT 19
您不需要64位处理器来使用64位数据类型.这一切都取决于编译器,仅在编译器上.如果需要,编译器可以为您提供128位,237位或803位数据类型.
但是,请记住,通常32位CPU不能直接处理64位值,这意味着支持64位类型的所有必要语言操作的负担在于编译器和库.编译器必须生成一个或多或少复杂的32位CPU指令序列,以便在64位值上执行加法,移位,乘法等.这意味着在为32位CPU生成的代码中,对64位数据类型的基本语言操作将不如在为64位CPU生成的代码中那样高效(因为在后者中,大多数语言操作将由单CPU指令).
"t" int64_t
代表"type"或"typedef name".这是标准库typedef的旧接受命名约定.
至于编译器版本,实际上这是一个模棱两可的问题.typedef名称int64_t
是C语言标准库(但不是C++语言)的一部分,而对64位整数类型(任何名称)的支持是编译器的一部分.你问哪一个?例如,MSVC编译器长期以来一直支持64位数据类型,但这些类型的名称不同.__int64
在MSVC中调用64位有符号整数.至于int64_t
typedef,AFAIK,即使在今天它也不是MSVC标准库的一部分.事实上,int64_t
从C99版本的规范中成为C语言的一部分.同时它不是C++语言的一部分.因此,通常,int64_t
无论编译器的版本如何,您都不应期望使用C++代码.
至于数据长度......嗯,是的,它只是位数的两倍.其余的如下.
归档时间: |
|
查看次数: |
5072 次 |
最近记录: |