3 回答

TA貢獻1946條經(jīng)驗 獲得超4個贊
存儲單元被視為一個字符占用的存儲量;類型對象的大小。char
因此是1。
編輯:在回答您最新的問題,以下的問題和回答是有關的哈比森和斯蒂爾(同上,Ex。4%CH.6)
是否允許有一個C實現(xiàn)
char
能代表從-2,147,483,648到2,147,483,647之間的數(shù)值嗎?如果是的話,那會是什么呢?sizeof(char)
在執(zhí)行中?什么是最小和最大的類型范圍?int
?
允許(如果是浪費的)實現(xiàn)使用32位來表示類型。
char
..無論實現(xiàn)是什么,sizeof(char)
總是1。
雖然這并沒有具體解決這樣的情況,例如字節(jié)是8位和char
是其中的4個字節(jié)(實際上C99定義是不可能的,請參見下面的事實)sizeof(char) = 1
始終明確從C99標準和哈比森和斯蒂爾。
編輯:事實上(這是對你的UPD 2問題的回答),就C99而言sizeof(char)
?是以字節(jié)為單位,再次來自第6.5.3.4節(jié):
量值運算符產(chǎn)生其操作數(shù)的大小(以字節(jié)為單位)。
因此,結合上面的引號,8位字節(jié)和char
因為其中的4個字節(jié)是不可能的:對于c99來說,一個字節(jié)與char
.
作為對你提到的7位可能性的回應char
這在C99中是不可能的。根據(jù)標準5.2.4.2.1節(jié),最小值是8:
其實現(xiàn)-定義的價值應相等。或更大[我的重點]在大小上顯示的,有相同的標志。
-非位字段的最小對象的位數(shù)(字節(jié))
?**CHAR_BIT?8**
-有符號字符類型的對象的最小值
**SCHAR_MIN?-127//?(27?1)**
-有符號字符類型的對象的最大值
**SCHAR_MAX?+127//27?1**
-無符號字符類型對象的最大值
**UCHAR_MAX?255//28?1**
-字符類型對象的最小值
**CHAR_MIN**????see?below
-字符類型對象的最大值
**CHAR_MAX**????see?below
[...]
如果在表達式中使用char類型的對象的值被視為有符號整數(shù),則char_min的值應與Schar_min的值相同,而char_max的值應與Schar_Max的值相同。否則,CHAR_min的值應為0,CHAR_max的值應與UCHAR_MAX的值相同。值UCHAR_MAX應等于2^CHAR_BIT?1。

TA貢獻1842條經(jīng)驗 獲得超13個贊
有些型號的模擬器件32位SHARC DSP的CHAR_BIT=32,而TMS 32F28xx的德州儀器DSP的CHAR_BIT=16,更新:有GCC 3.2為PDP-10使用char_bit=9(請檢查歸檔文件中的include/Limited s.h)。
- 3 回答
- 0 關注
- 518 瀏覽
添加回答
舉報