与涉及的结构数组编译错误;代币

时间:2012-12-05 00:38:53

标签: c struct

我想创建一个结构数组:

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;
}

问题是,当我想编译时,我收到以下错误:

';'之前的

语法错误令牌并指向我标记的行

任何帮助?

由于

1 个答案:

答案 0 :(得分: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> 

。您可能想要检查的一些事项是:

  • #defineemployee
  • 之类的job
  • 您确定employee在两个地方的拼写都相同吗?
  • 你确定你拥有你声称拥有的所有分号吗?
  • 有没有&#34;搞笑&#34;您的代码中的字符(看起来不可见但仍然将输入流填充到编译器中的字符)?

一个好的第一个开始是注释错误的行,看看你是否在下一行得到了错误。这应该缩小到该行(无错误)或前一行(仍有错误)。

如果您执行以下操作,则可以以十六进制模式查找整个文件(查找有趣的字符):

od -xcb myfile.c

(在Linux下 - Windows I&#39;我不确定,如果你有gvim,你可以用菜单项将其转换为十六进制。)