1

プログラムに色を付けるには、そのコードが必要です。しかし、-pedantic を使用するとコンパイルされません。これを回避する方法はありますか?ところで

gcc -pedantic MP1.c -o haha​​h
MP1.c: 関数 `main' 内:
MP1.c:65: 警告: ISO C90 は宣言とコードの混合を禁止しています
MP1.c:686:30: 警告: (これは入力ファイルごとに 1 回だけ報告されます)

65行目:

int originalAttrs = ConsoleInfo.wAttributes;
4

2 に答える 2

3

の宣言をoriginalAttrs、それが使用されているスコープの先頭に移動します。エラーは の使用とは関係ありませんがConsoleInfo.wAttributes、 の宣言の場所とは関係ありませんoriginalAttrs。コード全体を見なくても、おそらく次のようなものです。

printf("hello\n"); /* For example. */
int originalAttrs = ConsoleInfo.wAttributes;

修正するには:

int originalAttrs;
printf("hello\n"); /* For example. */
originalAttrs = ConsoleInfo.wAttributes;
于 2012-08-11T13:31:12.003 に答える
0

C90標準に準拠するようにコードを修正するか(hmjdの回答が示唆するように)、gccに新しいバージョンの標準を使用するように指示します。

C では、C99 標準で始まる宣言とステートメントを混在させることができます。

使用する場合

gcc -std=c99 -pedantic

また

gcc -std=c11 -pedantic

それはうまくいくはずです。

于 2014-07-11T01:50:09.387 に答える