我在尝试使用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

09-10 04:24
查看更多