a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

詳談signed 關(guān)鍵字

2020-01-26 15:10:41
字體:
供稿:網(wǎng)友

我們都知道且經(jīng)常用到 unsigned 關(guān)鍵字,但有沒有想過,與此對應(yīng)的 signed 關(guān)鍵字有啥用?

復(fù)制代碼 代碼如下:

int i = 0;
signed int i = 0;

這倆有區(qū)別嗎?沒區(qū)別,看起來,signed 完全是個(gè)累贅。

真的是這樣嗎?

我查閱了 C++11 的標(biāo)準(zhǔn)文檔(草稿N3690),發(fā)現(xiàn)一些端倪:

3.9.1 Fundamental types

復(fù)制代碼 代碼如下:

Objects declared as characters(char) shall be large enough to store any member of the implementation's basic character set. If a character from this set is stored in a character object, the integral value of that character object is equal to the value of the single character literal form of that character. It is implementation-defined whether a char object can hold negative values. Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types, collectively called narrow character types. A char,a signed char,and an unsigned char occupy the same amount of storage and have the same alignment requirements(3.11); that is,they have the same object representation. For narrow character types, all bits of the object representation participate in the value representation. For unsigned narrow character types, all possible bit patterns of the value representation represent numbers. These requirements do not hold for other types. In any particular implementation, a plain char object can take on either the same values as a signed char or an unsigned char; which one is implementation-defined.

標(biāo)準(zhǔn)規(guī)定的很清楚,char, signed char 和 unsigned char 是三種不同的類型。 char 會(huì)根據(jù)具體實(shí)現(xiàn)場景,而決定到底是 signed 還是 unsigned.

再看看 C11 的標(biāo)準(zhǔn)文檔(ISO/IEC 9899:201x)呢?

6.7.2 Type specifiers

復(fù)制代碼 代碼如下:

Each of the comma-separated multisets designates the same type, except that for bit-fields, it is implementation-defined whether the specifier int designates the same type as signed int or the same type as unsigned int.

看來,bit-fields (位域) 也存在同樣的問題。(位域的概念可能也有點(diǎn)偏,經(jīng)常寫比較底層的接口或協(xié)議童鞋應(yīng)該熟悉,可參考這里)

結(jié)論

在 C/C++ 中,signed 關(guān)鍵字絕大多數(shù)情況下都是累贅,但對于上述所言的兩種情況,即在 char 與 bit-fields 的使用過程中,還是有比較隱晦的作用的。

給自己提個(gè)醒,總是好的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 亚洲欧美日韩国产综合 | 欧美一区久久 | 成人国产精品一级毛片视频 | 久久亚洲91| 日韩欧美在线视频 | 国产精品无码久久久久 | 岛国免费av| 久草免费在线 | 九色91视频| 欧美日韩福利视频 | 在线看免费黄色片 | 欧美性猛交一区二区三区精品 | 亚洲色图p| 碰在线视频 | 欧美 日韩 国产 一区 | 少妇裸体淫交免费视频 | 91国自产区一二三区 | 日韩特级 | 久久精品国产免费 | 夜夜久久| 人人艹人人爽 | 夜夜爽99久久国产综合精品女不卡 | 人成亚洲 | 老师的朋友2 | 欧美一级在线 | 久草青青 | 成人伊人| 国产精品久久久久久久久岛 | 国产999久久 | 亚洲麻豆精品 | 欧美精品一区二区视频 | 精品视频在线观看一区二区 | 精品久| 人人做人人爽 | 欧美一区二区在线 | 香蕉在线影院 | 欧美成人理论片乱 | 午夜少妇av | 欧美一区二区三区四区不卡 | 欧美成人r级一区二区三区 超碰999 | 一区二区三区回区在观看免费视频 |