C 修复了Linux内核中的64位整数
我希望在linux内核中有一个固定大小的64位整数 我的问题是:C 修复了Linux内核中的64位整数,c,linux,gcc,linux-kernel,C,Linux,Gcc,Linux Kernel,我希望在linux内核中有一个固定大小的64位整数 我的问题是: 如果我使用的是无符号long,那么在一个体系结构上它可能是64位的,而在另一个体系结构上它可能是32位的。对吧? 修复的数据类型是什么 64位整数 我特别指的是linux内核 如果我使用unsigned long,那么在一种体系结构上它可能是64位的,在另一种体系结构上它可能是32位的。对吧? 是的,unsigned long的大小由实现定义,因此不可移植 固定64位整数的数据类型是什么 int64\u t或uint64\u t
无符号long
,那么在一个体系结构上它可能是64位的,而在另一个体系结构上它可能是32位的。对吧?李>
unsigned long
的大小由实现定义,因此不可移植
固定64位整数的数据类型是什么
int64\u t
或uint64\u t
如果我使用unsigned long,那么在一种体系结构上它可能是64位的,在另一种体系结构上它可能是32位的。对吧?
是的,unsigned long
的大小由实现定义,因此不可移植
固定64位整数的数据类型是什么
int64\u t
或uint64\u t
C语言提供了许多固定宽度类型,有符号和无符号
正如Lundin所说,“无符号long的大小是由实现定义的,因此是不可移植的”
因此,像int
、unsigned int
和float
这样的常见类型取决于编译器
您可以看到自C99以来可用的固定宽度整数类型的完整列表
int64_t
是一种“带符号的整数类型,其宽度正好为64位,没有填充位,并对负值使用2的补码”
uint64\u t
,也根据文档,是一种“无符号整数类型,宽度正好为64位”
但您可能会好奇地看到更多其他固定64位宽度整数类型,如:uint\u fast64\u t
,uint\u least64\u t
我建议您看看,并从中获得学习神奇C类型的乐趣\o/
您还可以检查上的可用类型
希望这有帮助 C语言提供了许多固定宽度类型,有符号和无符号 正如Lundin所说,“无符号long的大小是由实现定义的,因此是不可移植的” 因此,像
int
、unsigned int
和float
这样的常见类型取决于编译器
您可以看到自C99以来可用的固定宽度整数类型的完整列表
int64_t
是一种“带符号的整数类型,其宽度正好为64位,没有填充位,并对负值使用2的补码”
uint64\u t
,也根据文档,是一种“无符号整数类型,宽度正好为64位”
但您可能会好奇地看到更多其他固定64位宽度整数类型,如:uint\u fast64\u t
,uint\u least64\u t
我建议您看看,并从中获得学习神奇C类型的乐趣\o/
您还可以检查上的可用类型
希望这有帮助 在Linux内核中,而不是
u64
,s64
或其ABI类似物\uu u64
和\uu s64
。在Linux内核中,而不是u64
,s64
或其ABI类似物\uu u64
。