有没有为'unsiged integer‘定义的缩短标签typedef,它可以在大多数/所有平台上工作?我在Windows中看到了很多uint或UINT,但我知道这在其他平台上并没有一致的实现。我很乐意为每个实例输入'unsigned int‘,但是如果有一个标准的类型定义函数(比如'uint',尽管没有一致的实现),我会使用它。在做了一些研究后,我怀疑情况并非如此,但人们可能对例如。C++11等,或者跨*nix/窗口的实现相同标签的标准标头。我对严格指定unsigned int的比特大小不是很感兴趣:它只用于低迭代循环。
发布于 2013-09-16 07:14:21
unsigned int的缩写是unsigned。类似地,long int可以缩写为long,unsigned long int可以缩写为unsigned long。
这条规则有一个例外:signed char和unsigned char都不能缩写为char。
发布于 2013-09-15 20:24:53
基本上,类型大小是由您使用的编译器和目标程序(可执行文件)将在其上运行的平台定义的。
例如,在x86机器上,几乎所有编译器都会将int (以及unsigned int)作为标准的32位整数。但是,在假设的128位CPU上,int可能会引用64位或128位整数。
但是,如果您像我一样坚持始终知道整数的大小,我建议您查看C++11中引入的cstdint头文件。
有关更多详细信息,请访问此站点:http://www.cplusplus.com/reference/cstdint/将#include <stdint.h>用于C,将#include <cstdint>用于C++。
发布于 2013-09-15 23:18:44
语言标准和标准库没有为类型定义任何“微不足道”的别名,这些别名除了提供替代名称之外没有任何用途。
标准库确实定义了几个具有平台相关含义的类型别名。例如,整数类型std::uintptr_t是一个足以表示任何对象指针值的整数类型;std::max_align_t是一种其alignof-value是平台提供的最大的类型。其他类型别名是有条件定义的std::uint32_t等,如果它们存在,它们是具有2的补码表示的固定宽度的整数类型。当然,这些只是其中一个基本类型的typedefs,但含义是不同的,而且这些都不是微不足道的,所以有一个很好的理由使用这些typedefs。
https://stackoverflow.com/questions/18812207
复制相似问题