I have saw the compiler option GNU99 and C99. What's the difference of them? Any detail documentation? (Clang, Xcode, Mac OS X)
clang supports the -std option, which changes what language mode clang uses. The supported modes for C are c89, gnu89, c94, c99, gnu99 and various aliases for those modes. If no -std option is specified, clang defaults to gnu99 mode. Differences between all c* and gnu* modes: c* modes define __STRICT_ANSI__. Target-specific defines not prefixed by underscores, like "linux", are defined in gnu* modes. Trigraphs default to being off in gnu* modes; they can be enabled by the -trigraphs option. The parser recognizes "asm" and "typeof" as keywords in gnu* modes; the variants __asm__ and __typeof__ are recognized in all modes. The Apple "blocks" extension is recognized by default in gnu* modes on some platforms; it can be enabled in any mode with the -fblocks option.
clang supports the -std option, which changes what language mode clang uses. The supported modes for C are c89, gnu89, c94, c99, gnu99 and various aliases for those modes. If no -std option is specified, clang defaults to gnu99 mode.
Differences between all c* and gnu* modes:
__STRICT_ANSI__
-trigraphs
__asm__
__typeof__
-fblocks
2.1m questions
2.1m answers
60 comments
57.0k users