2013-03-16 168 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