1

式のステートメントと宣言はGNU C に固有のものですか? それとも、この機能は C99 標準にも含まれていますか?

4

3 に答える 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 に答える