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