我想创建一个结构数组:
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;
}
问题是当我想编译时出现以下错误:
“;”之前有语法错误 token 并指向我标记的行
有什么帮助吗?
谢谢
最佳答案
根据以下记录,该代码单独而言是很好的:
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
在两个地方的拼写相同吗? - 您确定您拥有您声称拥有的所有分号吗?
- 您的代码中是否存在任何“有趣”的字符(那些看似不可见但仍然会塞满编译器输入流的字符)?
一个好的开始是注释掉错误的行,然后看看下一行是否出现错误。这应该将范围缩小到该行(没有错误)或上一行(仍然有错误)。
如果您执行以下操作,您可以以十六进制模式查看整个文件(寻找有趣的字符):
od -xcb myfile.c
(在 Linux - Windows 下,我不确定,如果你有 gvim
,你可以使用菜单项将其转换为十六进制)。
关于涉及 ; 的结构数组的编译错误代币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13714485/