我在尝试使用GCC编译程序时收到这些错误,但我不确定是什么原因引起的。
functions.h:21: error: expected ')' before '[' token
functions.h:22: error: expected ')' before '[' token
functions.h:23: error: expected ')' before '[' token
functions.h:25: error: expected ')' before '[' token
functions.h:26: error: expected ')' before '[' token
functions.h:27: error: expected ')' before '[' token
我的程序在Visual Studio 2012中可以正常编译。
这是似乎导致错误的头文件。
struct subject
{
char year[5];
char session;
char code[8];
char credit[3];
char mark[4];
};
struct data
{
char name[30];
char id[30];
char cc[30];
char course[80];
struct subject subjects[30];
int gpa;
};
void displayRecord(data [], int);
int nameSearch(data [], char [], int [], int);
void editRecord(data [], int, int);
char getChar(const char [], int);
int getData(data []);
void displayData(data []);
void deleteRecord(data [], int, int);
我正在这样调用编译器:
gcc -o测试functions.cpp functions.h main.cpp
我很沮丧,所以任何帮助将不胜感激!
最佳答案
我灵敏的调试能力告诉我,您的Visual Studio正在将代码编译为C ++,而gcc将其编译为C。由于在函数参数中的struct
之前缺少data
关键字,因此C编译器不知道去做。尝试通过g ++而不是gcc运行它(并可能要确保包含的源文件的扩展名是.C
或.cpp
。