-1

誰かがこれで私を助けてくれることを願っています。私は Linux と Eclipse の初心者ですが、C/C++ にはかなり慣れていますが、使用してからしばらく経ちます。コンパイルしようとすると、奇妙なエラーが発生します。それらを修正するために何をしても、それらは消えないようです。

main少しのコードで簡単な関数があることがわかります。コードは 15 行しかありませんが、エラーを見ると、それらは外部ライブラリにあり、stdio.h. 11main行目に1つのエラーがあると書かれていますが、それは意味がありません。Eclipse の設定の問題だと思いますが、修正する方法がわかりません。どんな助けでも大歓迎です。ところで、私は SciLinux と Eclipse Indigo Service Release 2 を使用しています。ありがとう ここに画像の説明を入力

コード:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   int *ptr;
   int a;
   a = 20;
   ptr = &a;
   int b;
   b = *ptr;
   printf(" ptr is %d\n",b);
   return 0;
}
4

3 に答える 3

0
int *ptr;
int a;
int b; //<- move to block top declaration 
a = 20;
ptr = &a;
于 2012-04-07T22:43:00.110 に答える
0

以前のコンパイラの中には、Cに関連するこの奇妙な問題があり、関数の先頭で宣言された変数のみを受け入れます。

したがって、おそらくエラーは、ブロックの先頭で変数bを宣言していないためです。別のコンパイラを使用するか、最初にすべての変数を宣言する準備をすることをお勧めします。

于 2012-04-08T09:52:21.450 に答える
0

他の回答が言うように、コードと宣言を混在させることは、昔ながらのプレーン C では違法です。以下を参照してください。

C での変数宣言の配置

gccでC89スタイルの変数宣言を強制するには?

Eclipse では、使用される標準バージョンは、C コンパイラ gcc に渡されるコンパイラ フラグ (-std=c89 または -std=c99) によって異なります。プロジェクトのセットアップ方法に応じて、Eclipse プロジェクトのプロパティまたは Makefile のいずれかになります。

于 2012-04-08T10:47:22.523 に答える