GCC 错误"expected ')' before '[' token"

gcc error "expected ')' before '[' token"

本文关键字:token before 错误 GCC expected      更新时间:2023-10-16

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

我的程序在visualstudio2012中编译良好。

这是导致错误的头文件。

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测试函数.cpp函数.h main.cpp

我被难住了,所以任何帮助都将不胜感激!

我的心理调试能力告诉我,您的visual studio将代码编译为C++,而gcc将其编译为C。由于函数参数中data之前缺少struct关键字,C编译器不知道该怎么办。尝试通过g++而不是gcc运行它(并可能确保包含的源文件的扩展名是.C.cpp

问题是您正在将functions.h传递给编译器。这是一个包含文件,您应该让两个.cpp文件包含它。不需要在编译器的命令行调用中传递它。只需从gcc的命令行调用中删除functions.h即可。

由于这是C++,所以应该使用g++而不是gcc进行编译。由于使用了gcc,编译器将functions.h视为C,并且代码不是有效的C。

所以,我认为你的汇编应该是

g++-o测试功能.cpp main.cpp
相关文章: