我一直在思考是否应该在内部使用typedef <cstdint>.
我个人比较喜欢写uint32_t了unsigned int和int8_t在char等...因为这对我来说是一个很大更加直观.
你们有什么感想?是否使用typedef是一个好主意 <cstdint>?有什么缺点吗?
Nem*_*emo 35
实际上,我建议同时使用两者.
如果你想要一些肯定是32位无符号的东西,请使用uint32_t.例如,如果要实现"struct"来表示外部对象,该外部对象的规范将其字段之一定义为32位无符号.
如果你想要的东西是"机器的自然字大小",请使用int或unsigned int.例如:
for (int i = 0 ; i < 200 ; ++i)
// stuff
Run Code Online (Sandbox Code Playgroud)
"机器的自然字大小"将为您提供最佳性能,无论是在今天的处理器还是明天的处理器上.
如果你的意思是"性格",请使用"char"; "char"或"unsigned char"如果你的意思是"字节".C/C++允许您通过"char*"访问任意对象的字节,严格来说,不是任何其他内容.
如果您特别需要8位整数,请使用uint8_t或int8_t,类似于uint32_t.
Fre*_*Foo 22
你应该同时使用两者.int当您需要"合理大小"的整数时,您应该使用其他答案中的解释.char在需要角色时使用:它是自我记录的.
uint32_t在二进制文件与外部世界交互时,你应该使用和朋友:进行网络编程,处理二进制文件或使用外部多字节编码等.在这些情况下,类型的确切大小对于编写正确,可移植的,自我记录的代码.这就是<stdint.h>(或C++ 0x <cstdint>)的用途.
(Endianness同样重要,但这完全是另一回事.)
| 归档时间: |
|
| 查看次数: |
11910 次 |
| 最近记录: |