首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU99和C99 (Clang)有什么不同?

GNU99和C99 (Clang)有什么不同?
EN

Stack Overflow用户
提问于 2011-03-15 22:52:44
回答 3查看 41.1K关注 0票数 58

我看过编译器选项GNU99和C99。它们有什么不同?有详细的文档吗?(Clang、Xcode、Mac OS X)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-17 04:47:51

Differences between various standard modes

clang支持-std选项,该选项可更改clang使用的语言模式。C语言支持的模式有c89、gnu89、c94、c99、gnu99以及这些模式的各种别名。如果未指定clang选项,则-std默认为gnu99模式。

所有c*和gnu*模式之间的差异:

typeof c*模式定义__STRICT_ANSI__.

  • Target-specific定义没有下划线作为前缀的定义,如"linux",在gnu*模式中定义为off;它们可以通过-trigraphs选项启用。

  • 解析器识别"asm“和”__asm__“作为gnu*模式中的关键字;变体__asm____typeof__在所有模式中都被识别。

  • 在某些平台上的gnu*模式中默认识别苹果的"blocks”扩展;可以在任何模式下使用-fblocks选项启用它。

更多链接

  • Options controlling C dialect for GCC
  • Extensions to the C Language Family
  • Clang Language Extensions
  • Useful GCC flags for C
票数 45
EN

Stack Overflow用户

发布于 2011-03-15 22:56:52

C99是直接的C99,GNU99是带有gnu扩展的C99。请参阅GCC manpage

票数 21
EN

Stack Overflow用户

发布于 2011-03-15 22:57:36

正如我们所知道的那样,C99仅仅是1999年的C标准版本。在GCC中,它不是完全支持的。

GNU99是C99的扩展,就像GNU98是C98的扩展一样。从文档中:

GNU加上C99扩展。当ISO C99在GCC中全面实施时,这将成为默认值。名称gnu9x已弃用。

Clang也支持这些扩展。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5313536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档