[英]C/C++ underlying representation of char, unsigned char and signed char
我是否正確地說以下每個定義中的基礎對象表示(位模式)是相同的?
char c = 240;
unsigned char c = 240;
signed char c = 240;
那么,只有在表達式(或強制轉換)中使用c
時,簽名才重要?
在一般情況下,如果signed char
的范圍不包括240
,則說模式相同是不正確的。 如果240
超出范圍,這個溢出初始化的結果是實現定義的(並且可能導致一個信號,見 6.3.1.3/3)。 如果已簽名,這同樣適用於char
初始化。
該語言僅保證對signed char
和unsigned char
范圍的公共部分進行匹配表示。 例如,這保證產生相同的模式
char c = 10;
unsigned char c = 10;
signed char c = 10;
使用240
在一般情況下沒有這樣的保證(假設它超出范圍)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.