@
taotian 除了 unsigned char 之类的缩写还能算是偷点懒,大概是其它语言用多了的典型自作多情。
像 Win32 SDK 里一坨 typedef void VOID; 一样一股早年 BASIC/PASCAL 糊傻了的瘆人味儿。还有 BOOL 这种笑话……当然这里的 #define 就更加神来一笔了。
表面上看是统一代码风格,实际上就是进一步用非标准方言分裂用户习惯。又去不掉原来被 typedef 掉的关键字,用户用了还能拒绝编译过?结果就是更加混乱。
正常点的做法就是 POSIX 这种,扩展现有语言标准,那么就不要重复已有的废话。当然这样有个后遗症就是不可能指望统一什么鸟 PascalCase ,但就算不这样也本来不能指望(没几个环境能彻底干掉小写的关键字)——作为 C ( C 艹同理)用户必须熟练见人说人话见鬼说鬼话,能做到通过标识符风格区分来源。
唯一一个例外是语言标准明确钦定特殊地位的保留标识符,不过这个就不是打算给你用户使用的。不过 C23 也干掉 _ 开头的东西了。(讲个笑话,bool 终于要是关键字了……)
@
duke807 符合 ISO C 的 char 必然是 1 字节。C 允许 1 字节不小于 8 位。
@
424778940 不存在 8 位的 unsigned integer type ,就不要求提供 uint8_t 。反正有 uint8_least_t 。