comp.lang.c FAQ 列表·
问题 1.3
Q由于 C 语言没有精确定义类型的大小,我一直在使用 typedef,例如:int16和int32这样的 typedef。我可以根据我使用的机器,将这些 typedef 定义为int, short, long等等。这样应该可以解决所有问题,对吧?
A如果你确实需要控制精确的类型大小,这是一种正确的方法。但仍有几点需要注意:
- 在某些机器上可能不存在精确匹配。(例如,存在 36 位机器。)
- 像这样的 typedefint16或int32如果其预期含义是“至少”指定的大小,则什么也做不了,因为类型int和long已经基本上定义为“至少 16 位”和“至少 32 位”。
- Typedef 永远无法解决字节序问题(例如,当你试图交换数据或遵循外部强制的存储布局时)。
- 你不再需要自己定义 typedefs,因为标准头文件<inttypes.h>包含了一整套。
另请参阅问题 10.16 和 20.5。
关于此 FAQ 列表 关于 Eskimo 搜索 反馈 版权由
托管