式のステートメントと宣言はGNU C に固有のものですか? それとも、この機能は C99 標準にも含まれていますか?
質問する
915 次
3 に答える
3
これは GCC 拡張機能です。( GCC 拡張機能の完全なリストについては、gcc 4.3.3の場合など、GCC のドキュメントを参照してください。C99 仕様は、ここから入手できます。)
-pedantic -std=c99
フラグを使用すると、GCC はそのようなことについて警告します。
$ cat foo.c
int main(void)
{
return ({ int a = 0; a; });
}
$ gcc -pedantic -std=c99 -c foo.c
foo.c: In function 'main':
foo.c:3: warning: ISO C forbids braced-groups within expressions
于 2010-06-20T15:23:57.687 に答える
3
これはC99 標準ではありませんが、この拡張もgcc に固有のものではありません。
たとえば、clang コンパイラーとインテル C++ コンパイラーはこの拡張機能をサポートしています。
于 2010-06-20T16:39:18.323 に答える
1
これは GNU C 拡張です。それが、「 GNU Cに現れる可能性がある」という意味です。(私の強調)
于 2010-06-20T15:24:04.097 に答える