`库-ansi`扩展(`clang -ansi` extensions)

2019-07-04 07:02发布

我遇到了一个问题,最近在下面的例子玩具完全编译使用clang -ansi

int main(void)
{
    for (int i = 0; 0; );
    return i;
}

gcc -ansi提供了以下错误:

a.c: In function ‘main’:
a.c:3:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
a.c:3:5: note: use option -std=c99 or -std=gnu99 to compile your code

与编译clang -ansi -pedantic正在使用一个扩展C99所示。

a.c:3:10: warning: variable declaration in for loop is a C99-specific feature [-pedantic,-Wc99-extensions]
    for (int i = 0; 0; );
         ^
1 warning generated.

什么其他的扩展不铛允许与-ansi选项? 如何禁用呢?

Answer 1:

如果你正尝试禁用扩展-ansi模式,那么你要这些警告视为错误:使用-pedantic-errors ,而不是-pedantic ,或-Werror (或两者)。 在过去的错误,更细粒度的控制,看到锵手册 。



文章来源: `clang -ansi` extensions
标签: c gcc clang c89