stdint.h C99提供了整数大小,类型和范围的许多选项 - 很多我不知道要选择什么!选择最合适的整数大小/范围用于变量
我知道how to use size_t
and ptrdiff_t
适当时,我使用固定大小类型的存储和传输。我的问题涉及只存储在主机内存中的值。
例如,对于图像的结构可能会包含这些成员:
struct image {
integer width, height; /* pixel dimensions of the image */
integer bits_per_pixel;
...
};
如果width
和height
绝不会超过SHRT_MAX
,应在short
使用,或与int
坚守?图像不能有负宽度或高度,所以使用无符号类型?也许(u)int_least16_t
是正确的选择?还有别的吗?
如果bits_per_pixel
绝不会超过64个使用char
,unsigned char
,uint8_t
,int
或别的东西的价值?
你会在这个例子中使用什么?为什么?
代码运行的CPU体系结构如何影响选择?即PPC或x86,32或64位。
代码将运行的设备如何影响选择?即桌面,电话,控制台。
选择与性能和优化有什么关系?
我简单的问题是:你如何选择使用哪个整数?
+1为固定大小的数据示例。 – schot 2010-10-14 07:27:35