回答
complex
是從complex.h宏其擴展到類型說明符_Complex
。這與所有其他類型說明符相同,例如int, bool, double
。對於屬於相同「組」的所有類型說明符,可以按各種順序組合它們。
至少有一個類型說明符應在聲明中給予 符在每個聲明,並在說明符限定符列表中 每個結構聲明和:這是由C11 6.7.2,重點煤礦指定類型名稱。類型說明符 的每個列表應該是以下多重集之一(用逗號分隔,當 每個項目有多個多重集時); 類型說明符可能 以任何順序發生,可能與其他聲明 說明符混合。
然後如下類型說明符的有效羣體,我們發現
float _Complex
double _Complex
含義的列表,在該說明符的任意排列同組也很好。
再舉一個例子,有一組
unsigned long long
,或unsigned long long int
這給了我們以下可能的組合:
unsigned long long x;
long unsigned long y;
long long unsigned z;
或
unsigned long long int a;
unsigned long int long b;
unsigned int long long c;
int unsigned long long d;
long unsigned long int e;
long long unsigned int f;
long long int unsigned g;
long unsigned int long h;
...
這些都意味着同樣的事情。
是的。一般情況下, 「請鍵入y字」 在聲明的開頭的順序並不重要:
static const unsigned long int x = 42;
相同
long const int unsigned static x = 42;
參考:C99,6.7.2/2
類型說明符可能以任何順序出現,可能與其他聲明說明符混合使用 。
(兩者float
和_Complex
是類型說明符。)
N1570表示*「在聲明中聲明 聲明的開始處以外的存儲類說明符的放置是一個過時的特性。」*,因此在其他位置使用'static'不是一個好主意。 – user694733
@ user694733但這隻適用於存儲類說明符。類似於'static long const int _Atomic long volatile unsigned * const volatile * _Atomic * const x;'在C中是完全正確的代碼... – Lundin
- 1. C思維:浮點數與整數和浮點數表示法
- 2. 是否有可能在浮點二進制數中有一個浮點指數?
- 3. 浮點數在C
- 4. python - 浮點數的總和導致重複小數點
- 5. 硬浮點數和軟浮點數之間有什麼區別?
- 6. 如何驗證字符串是否是有效的浮點數?
- 7. PHP和浮點數
- 8. Java.lang.numberformatexception:無效浮點數「0.008466」
- 9. Python無效浮點數()
- 10. 在浮點數中存儲浮點數?
- 11. 聲明浮點數或浮點數嗎?
- 12. 計數浮點數(hw)C
- 13. 複製浮點數據到墊子
- 14. 複製位模式:浮點數到uint32_t
- 15. 檢測是否NSString的是浮點數
- 16. Delphi 64位NaN和無效浮點數
- 17. Android顯示整數和浮點數的複數
- 18. 浮點數
- 19. 浮點數
- 20. 浮點數
- 21. C++浮點數異常
- 22. 浮點數鑄件C++
- 23. C++檢查浮點數
- 24. C++ Cout浮點數問題
- 25. 浮點數和運算符詳細與浮點數
- 26. 將小數位數多的浮點數轉換爲浮點數只有一個小數位的浮點數
- 27. C#定點浮點
- 28. C# - 是否有32位浮點數學庫?
- 29. Mysql連接器C++和浮點數
- 30. c中的浮點數和雙精度#
由於'INT長無符號long'是有效的,它是有道理的,這兩個訂單是有效的。雖然我沒有正式檢查過。 –
http://port70.net/~nsz/c/c11/n1570.html#7.3.1p4:*宏 'complex' 擴展爲'_Complex;'宏 _'Complex_I' 膨脹到常量表達式'const float _Complex',其中虛數單元的值爲*。所以'float'在這裏只是多餘的。 –
@ EugeneSh。使用gcc複合函數以其自己的默認值加倍複雜。 – eleanora