回答
原子類型說明符: - :)
Syntax: _Atomic (type-name);
可以聲明這樣的原子整數:
_Atomic(int) counter;
的_Atomic
關鍵字可以在形式_Atomic(T)
,其中T是被用來一個類型,作爲類型說明符相當於_Atomic
T.因此,_Atomic(T) x, y;
聲明x和y具有相同的類型,即使T是一個指針類型。這允許將C++ 0x與C++ _Atomic(T)
宏定義的微小C++兼容性視爲原子。
如果實現不支持原子類型,則不應使用原子類型說明符。 原子類型說明符中的類型名稱不應引用數組類型,函數類型,原子類型或限定類型。
與原子類型相關的屬性僅對左值表達式有意義。
If the _Atomic keyword is immediately followed by a left parenthesis, it is interpreted as a type specifier (with a type name), not as a type qualifier.
原子類型限定: - :)
_Atomic volatile int *p;
比指針類型,它們的引用類型是對象類型,不得限制資格的其他
It specifies that p has the type ‘‘pointer to volatile atomic int’’, a pointer to a volatile-qualified atomic type.
類型。 由_Atomic
限定符修改的類型不應是數組類型或函數類型。 與限定類型關聯的屬性僅對左值表達式有意義。
如果相同限定符在同一個限定符列表中直接或通過一個或多個typedef出現多次,則行爲與僅出現一次的行爲相同。如果其他限定符與限定符 - 限定符列表中的_Atomic
限定符一起出現,則生成的類型是合格的原子類型。
單獨使用關鍵字_Atomic
作爲類型限定符。只要進行適當的轉換,包括通過轉換操作符,允許實現放寬具有相同的非原子類型的表示和對齊的要求。
- 1. C11語法歧義之間_Atomic類型說明符和限定符
- 2. 沒有類型說明符的類型限定符
- 3. 別名類型中的詳細說明類型說明符
- 4. Common Lisp類型說明符
- 5. printf的類型說明符
- 6. 類型說明符錯誤
- 7. 多類型說明符
- 8. 沒有類型說明符的參數
- 9. 詳細類型說明符中的類型依賴嵌套名稱說明符
- 10. Cython中numpy「類型標識符」和「類型」有什麼區別?
- 11. 類型和生命週期限定符之間的區別
- 12. 泛型類型和泛型類型定義有什麼區別?
- 13. 「類型名稱需要說明符或限定詞」錯誤
- 14. 此聲明沒有存儲類或類型說明符
- 15. VC++ - 該聲明沒有存儲類或類型說明符
- 16. 聲明沒有存儲類或類型說明符
- 17. MIME和內容類型有區別嗎?
- 18. C++錯誤:預期類型說明符
- 19. printf 64位類型說明符問題
- 20. CLLocationCoordinate2DMake缺少類型說明符
- 21. 任意類型說明符的Defmethod?
- 22. const是否需要類型說明符?
- 23. 錯誤:缺少類型說明符
- 24. printk loff_t類型的格式說明符?
- 25. cuda「預計類型說明符」
- 26. Typedef缺少類型說明符
- 27. 預期的類型說明符
- 28. 類型說明符的組合無效?
- 29. 預期類型說明符錯誤GCC
- 30. 通配符類型與有界類型之間的區別
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1485.pdf確實比最終的C11標準包含更多信息。 – nos 2014-10-22 12:48:27
http://stackoverflow.com/questions/10668941/c11-grammar-ambiguity-between-atomic-type-specifier-and-qualifier – CinCout 2014-10-24 07:37:09