1

Ubuntu 9.0464ビットでGCC4.3.3を使用していて、CコードでC++スタイルのコメントを使用するとエラーが発生していました。タイトルで「デフォルトで」と言うときは、単に呼び出すことを意味しますgcc test.c

GCC 4.3.3のドキュメント(ここ)によると、これはサポートされています...それでもエラーが発生しました。

これらのエラーは、コンパイル文字列に-std = c99を追加するだけで解消されたため、問題は解決しました。ドキュメントと明らかに矛盾しているように思われるので、GCCの専門家がこれについて説明していたかどうか興味があります。

#include <stdio.h>
// this is a comment

int main( void )
{
   return 0;
}
4

3 に答える 3

5

Ubuntuがデフォルト(gnu89 )をオーバーライドしている可能性があります。確かに、GCC 4.3(Debian上)のコピーではそれはわかりません。

% echo '// foo' | gcc-4.3 -x c -c -
% echo '// foo' | gcc-4.3 -std=gnu89 -x c -c -    
% echo '// foo' | gcc-4.3 -std=c89 -x c -c -    
<stdin>:1: error: expected identifier or '(' before '/' token
于 2009-11-01T17:01:03.457 に答える
4

からの引用http://gcc.gnu.org/onlinedocs/gcc/Standards.html#Standards

C言語の方言オプションが指定されていない場合のデフォルトは、-std=gnu89です。

そして// commentsによって認識されます-std=gnu89

于 2009-11-01T16:57:39.860 に答える
3

defualtにより、GCCはGCC拡張機能を備えたC89/90標準を使用しています。厳密に言えば、デフォルトでは特定の標準に準拠していません。これは、デフォルトでは、標準で診断メッセージが必要な場合に診断メッセージを発行しないためです。標準に準拠させるには、 gccを-ansi -pedanticモードで(場合によっては)実行する必要があります。-Wallそしてこの場合、もう一度、C89/90があります。

于 2009-11-01T17:55:41.320 に答える