2013-03-16 160 views
1

我知道在GNU C編譯器(又名gcc)中增加了幾種語言擴展。 我可以讀些關於here的內容。GNU C擴展文檔:它在哪裏?

我在尋找的是關於這些主題的更深入更廣泛的文檔。

例如,我想了解更多關於_Static_assert(),typeof等的內容。

也許這只是我的錯,但我找不到這樣的官方文檔。任何提示? TIA!

+0

試試'info gcc'。 – 2013-03-16 17:20:38

+0

在我的Ubuntu上說它沒有「Top」節點!我還安裝了gcc-doc和texinfo的東西...不!沒有在線文檔嗎? – Enzo 2013-03-16 17:31:23

+0

http://gcc.gnu.org/onlinedocs/gcc/或者更直接地,http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html#C-Extensions – 2013-03-16 17:36:12

回答

3

答案是http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html並且您沒有發現靜態斷言,因爲它不是C語言的擴展,它是語言的核心內置標準化部分,並在語言國際標準中進行了描述。在這種情況下,指的是C規範:

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

見節6.7.10靜態斷言,特別是第3段:

「的常量表達式應是整數常量表達式如果該值 常量表達式不等於0時,聲明不起作用,否則違反約束條件,實現應產生診斷消息 包含字符串文本的文本,但不包括基本源中的字符 字符集是不需要出現在消息中。「

+0

這就是我的問題的更接近的答案。儘管這在很大程度上是沒有答案的。 – Enzo 2013-03-28 14:46:22

1

這裏:http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html

使用Google在gnu.org內搜索。通過在Google中輸入此搜索來找到它:c extensions site:gnu.org

+0

我輸入了gnu.org擴展名「_Static_assert」,沒有任何文檔,即使沒有「extensions」關鍵字。最佳匹配是v4.6的更新日誌,沒有使用細節。 – Enzo 2013-03-17 18:53:48

+0

如果您的意思是http://gcc.gnu.org/gcc-4.6/changes.html,則表示它是C1X修訂版的實驗性擴展。假設它支持官方的C1X語法並與之一起玩。請注意更改日誌中的重大警告,說明它可能會在將來更改。我還更新了在站點內搜索的語法。 – chr 2013-03-17 21:34:28