私は最近、次のおもちゃの例が以下を使用してきれいにコンパイルされるという問題に遭遇しました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.
clangはこのオプションで他にどのような拡張機能を許可し-ansi
ますか?どうすればそれらを無効にできますか?