在我的教科書中,它表示所有整數都被認爲是默認簽名的,我在網上找到的大部分源文件都說要對浮點數進行簽名,那麼使用signed
關鍵字有什麼意義呢?爲什麼你要指定一個整數作爲C簽名?
回答
在C語言中,你可以省略類型名的部分,所以你可以實際使用signed
代替int
,這可能看起來很好的對稱:
void f(signed a, unsigned b);
或者更冗長:
unsigned int foo;
signed int bar;
如果您在附近不使用這兩種類型,則可能更喜歡名稱更簡單的形式:
int x; // normal
auto y; // quaint
signed auto graph; // why not
至少有兩種情況需要關鍵字unsigned
。因爲它可以表現爲signed char
或unsigned char
。這有三種不同的類型:char
,signed char
和unsigned char
。
第二個問題是在位字段中使用關鍵字,因爲具有類型說明符int
的位字段的行爲可以是signed int
或unsigned int
。
C11聽起來像一個簡單的'int'不會被允許作爲一個位域的類型(6.7.2.1/5)移植。 –
@KerrekSB有一篇文章寫道:「對於位字段,它是實現定義的,是指定int指定的是與signed int相同的類型還是與unsigned int指定的類型相同。 –
我現在看到它,謝謝! –
signed
單詞沒有得到太多的使用。 unsigned
會這樣做,因爲所有整數類型(char值得檢查) 都自我定義爲signed。 unsigned float
,unsigned double
或 unsigned long double
不存在。 //signed float/double/long double are errors to.
'長雙'是有效C. – alk
是的,但'簽名長雙'和'無符號長雙'arent –
- 1. 你爲什麼要洗一個數組?
- 2. HTTP:你爲什麼需要指定主機名?
- 3. datetime.date:TypeError:需要一個整數。爲什麼?
- 4. 爲什麼你需要一個Hyper-V?
- 5. 爲什麼你需要一個爲Html.Action定義的路由?
- 6. 爲什麼這個C函數將一個指針指針作爲參數?
- 7. Java:爲什麼你需要在浮點數字中指定'f'?
- 8. 爲什麼C++ 11 CAS操作需要兩個指針參數?
- 9. 你爲什麼要把整個課程封爲/最終?
- 10. 爲什麼我不能在C++中給整數指針賦一個整數值?
- 11. 爲什麼你需要有一個.dll作爲數據訪問層
- 12. 爲什麼你需要指定一個html表格寬度和列寬
- 13. C:爲什麼整數作爲長整數?
- 14. 你爲什麼要創建一個值爲這個的變量
- 15. C# - 爲什麼你需要實例化每個數組元素?
- 16. 你爲什麼要用fmt.Sprint?
- 17. 爲什麼你需要指定Java堆大小?
- 18. 爲什麼你需要指定WCF服務的端點地址?
- 19. 爲什麼你需要指定一個數組到Set.toArray,它返回一個數組?
- 20. 爲什麼C++中沒有指定複雜的整數?
- 21. 爲什麼Git需要簽名推送?
- 22. 爲什麼要簽名我的xap?
- 23. Go/CGo - 你如何使用一個C數組作爲指針
- 24. 爲什麼xml_http_request需要一個操作作爲其參數?
- 25. 爲什麼常量整數指針指向一個非常量整數?
- 26. 爲什麼我不需要在C#中指定類型參數?
- 27. 爲什麼你需要一個單獨的product_to_category數據庫表?
- 28. 爲什麼要複製一個名爲「slice」的數組?
- 29. 爲什麼你必須定義一個空的構造C++
- 30. 爲什麼你想要發生整數溢出?
您可能會將它用於'char'變量,它們[默認情況下未指定爲有符號或無符號](http://stackoverflow.com/questions/2054939/is-char-signed-or- unsigned -默認)。 –