Edw*_*rak 80
stdint.h在开发这些库时,它们并不存在.所以每个图书馆都有自己typedef的版本.
Ven*_*Ven 40
对于较旧的库,这是必需的,因为问题(stdint.h)中的标题不存在.
但是,仍然存在一个问题:这些类型(uint64_t和其他类型)是标准中的可选功能.因此,一个符合要求的实现可能不会附带它们 - 因此强制库现在仍然包含它们.
Pek*_*kka 13
stdint.h 自1999年以来已经标准化.许多应用程序更有可能定义(有效别名)类型以保持与底层机器架构的部分独立性.
它们使开发人员确信其应用程序中使用的类型与其可能与语言标准或编译器实现不匹配的行为的项目特定假设相匹配.
这种做法反映在面向对象的Façade设计模式中,并且被开发人员滥用,并且总是为所有导入的库编写包装类.
当编译器的标准要低得多,并且机器架构可能从16位,18位到36位字长的大型机不等时,这更多是一个考虑因素.在融合32位ARM嵌入式系统的世界中,这种做法现在的相关性要低得多.对于具有奇数存储器映射的低端微控制器,它仍然是一个问题.