error: expected primary-expression before ')' token (C)
error: expected primary-expression before ')' token (C)
我正在尝试调用一个名为 characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel)
的函数,其中 returns 一个 void
这是我尝试调用的函数的.h
:
struct SelectionneNonSelectionne;
void characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne);
void resetSelection(SDL_Surface *screen, struct SelectionneNonSelectionne);
在我的主要功能上,我尝试这样调用它:
characterSelection(screen, SelectionneNonSelectionne);
当我编译时,我得到消息:
error: expected primary-expression before ')' token
我做了includes
。我想我错误地调用了第二个参数,我的 struct
。但是,我在网上找不到原因。
你知道我做错了什么吗?
需要对对象执行函数调用。您正在执行与此等效的操作:
// function declaration/definition
void foo(int) {}
// function call
foo(int); // wat!??
即传递需要对象的类型。这在 C 或 C++ 中没有意义。你需要做
int i = 42;
foo(i);
或
foo(42);
您传递的是类型作为参数,而不是对象。您需要执行 characterSelection(screen, test);
,其中测试的类型为 SelectionneNonSelectionne
。
您应该创建一个 SelectionneNonSelectionne 类型的变量。
struct SelectionneNonSelectionne var;
之后将该变量传递给函数,如
characterSelection(screen, var);
错误是由于您传递的类型名称是 SelectionneNonSelectionne
我在 Code::Blocks 的最新夜间构建中发现了这个问题。当我在撰写本文时切换回 Code::Blocks 的稳定版本 20.03 时,问题消失了,我的代码编译和 运行 没有问题。我不确定 Code::Blocks 在做什么,但这很烦人。我在 C++ 项目中为我的代码中的每个 NULL
反复得到这个,迫使我改用 nullptr
。
我正在尝试调用一个名为 characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel)
的函数,其中 returns 一个 void
这是我尝试调用的函数的.h
:
struct SelectionneNonSelectionne;
void characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne);
void resetSelection(SDL_Surface *screen, struct SelectionneNonSelectionne);
在我的主要功能上,我尝试这样调用它:
characterSelection(screen, SelectionneNonSelectionne);
当我编译时,我得到消息:
error: expected primary-expression before ')' token
我做了includes
。我想我错误地调用了第二个参数,我的 struct
。但是,我在网上找不到原因。
你知道我做错了什么吗?
需要对对象执行函数调用。您正在执行与此等效的操作:
// function declaration/definition
void foo(int) {}
// function call
foo(int); // wat!??
即传递需要对象的类型。这在 C 或 C++ 中没有意义。你需要做
int i = 42;
foo(i);
或
foo(42);
您传递的是类型作为参数,而不是对象。您需要执行 characterSelection(screen, test);
,其中测试的类型为 SelectionneNonSelectionne
。
您应该创建一个 SelectionneNonSelectionne 类型的变量。
struct SelectionneNonSelectionne var;
之后将该变量传递给函数,如
characterSelection(screen, var);
错误是由于您传递的类型名称是 SelectionneNonSelectionne
我在 Code::Blocks 的最新夜间构建中发现了这个问题。当我在撰写本文时切换回 Code::Blocks 的稳定版本 20.03 时,问题消失了,我的代码编译和 运行 没有问题。我不确定 Code::Blocks 在做什么,但这很烦人。我在 C++ 项目中为我的代码中的每个 NULL
反复得到这个,迫使我改用 nullptr
。