我喜欢uint8_t,因为我觉得意图(二进制数据,而不是字符)表达得更好.但是,我可能想要调用许多基于字符的I/O函数.只是想知道人们是否符合最佳实践?这是我第一次涉足字节级I/O.
Kei*_*son 10
问题char在于它可能是带符号的类型(范围至少为-127 .. + 127)或无符号类型(范围至少为0..255).
unsigned charchar对于二进制字节数据,它比plain更好.
uint8_t,如果它存在,将具有相同的范围和表示unsigned char,并且可能只是同一类型的另一个名称.
请注意,C++(如C)将字节定义为给定系统上的最小可寻址存储单元.它至少是 8位,在您可能使用的任何系统上可能正好是8位,但它允许更宽.CHAR_BIT在<stddef.h>或中定义的宏<cstddef>告诉您字节中的位数.
如果您想绝对保证您使用的是8位字节,请查询CHAR_BIT或使用的值uint8_t.如果字节大于8位,uint8_t则不存在(因为没有满足其要求的类型).
| 归档时间: |
|
| 查看次数: |
1717 次 |
| 最近记录: |