0

構造体の配列を作成したい:

typedef struct
{
   int id;
   int department;
}employee;

int main(int argc, char *argv[])
{
 int i;
 employee job[3];   ////////////////error
 for (i=0;i<3;i++)
 {
    //do something
 }  
return 0;
}

問題は、コンパイルしたいときに次のエラーが発生したことです。

';'の前の構文エラー トークンと私がマークした行を指す

何か助けはありますか?

ありがとう

4

1 に答える 1

2

次のトランスクリプトのように、そのコードは、スタンドアロンとしては問題ありません。

pax> cat qq.c
typedef struct {
   int id;
   int department;
} employee;

int main (int argc, char *argv[]) {
    int i;
    employee job[3];   ////////////////error
    for (i=0;i<3;i++) {
        //do something
    }  
   return 0;
}
pax> gcc -o qq qq.c
pax> 

。あなたがチェックしたいと思うかもしれないいくつかの事柄は次のとおりです:

  • #defineまたはのようなものはありますemployeeか?job
  • employee両方の場所で同じスペルト小麦ですか?
  • あなたが持っていると主張するすべてのセミコロンを持っていると確信していますか?
  • コードに「面白い」文字(見えないように見えても、コンパイラへの入力ストリームを詰め込んでいる文字)はありますか?

最初に、誤った行をコメントアウトして、次の行でエラーが発生するかどうかを確認することをお勧めします。その行(エラーなし)または前の行(まだエラーがある)のいずれかに絞り込む必要があります。

次のような操作を行うと、ファイル全体を16進モード(面白い文字を探す)で表示できます。

od -xcb myfile.c

(Linux-Windowsの場合はわかりませんが、持っている場合はgvim、メニュー項目を使用して16進数に変換できます)。

于 2012-12-05T00:47:55.370 に答える