[!注意] uint8_tchar都是C语言中用于处理单字节数据的类型,但在语义定义取值范围跨平台兼容性 上也本质区别

  • uint8_t
    • 来源于C标准库<stdint.h>
    • 明确无符号8位整数类型,存储内容:纯数值
    • 其取值范围是 0~255
    • 跨平台完全兼容,所有平台定义一致
  • char
    • C语言的原生类型
    • 语义为“字符”(此为默认用途),存储内容:对应的ASCII码值
    • 其取值范围不确定,编译器默认可能是signed或者unsigned
    • 跨平台不兼容,符号性随编译器变化

[!建议] char *uint8_t * 它们都指向相同类型的内存 但各自的主要用途却有所区分,人们习惯用char *处理字符串,而uint8_t *用来处理原始字节数据

使用的时候要符合大众规范,能在一定程度上避免不少问题