Nic*_*ick 6 c char platform-independent
我刚刚开始研究一个应该与平台无关的大项目,但它实际上使用了实现定义的类型,例如char.
这已经造成了一些问题,因为某些设备char默认signed为其他设备unsigned.
我想找到一个解决方案,以避免在必须与平台无关的代码中使用实现定义的类型.
unsigned char(或signed char)typedef?小智 5
从理论上讲,答案很简单:
始终将类型用于其预期目的.例如,您希望实现定义的类型类似于数组的大小,因为在不同的平台上,这样大小的上限将是不同的.类似的指针.对于固定大小类型的需要,C已经提供了适当的typedefs stdint.h.
这是一个不完整的"使用对象"列表:
unsigned)int表示任何不需要固定大小且不会超过16位范围的整数char的文字,int并投射到unsigned char与字符存储在库函数打交道时int.size_t了相关的对象,例如数组索引的大小事情uintptr_t时,你需要将存储值指针的整数intX_t/ uintX_t(以X位数为单位),这些位不应根据目标平台而改变.int_leastX_t/ uint_leastX_t代替.无法解决八位字节的实现不会提供例如uint8_t,但它会提供uint_least8_t更多位.| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |