错误:令牌 (C) 之前的预期主表达式')'
error: expected primary-expression before ')' token (C)
我正在尝试调用一个名为 characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel)
的函数,该函数返回一个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
.但是,我在网上找不到原因。
你知道我做错了什么吗?
您应该创建一个类型为 SelectionneNonSelectionne 的变量。
struct SelectionneNonSelectionne var;
之后将该变量传递给函数,例如
characterSelection(screen, var);
由于您传递的类型名称 SelectionneNonSelectionne 导致此错误
函数调用需要对对象执行。您正在执行等效的操作:
// function declaration/definition
void foo(int) {}
// function call
foo(int); // wat!??
即在需要对象的地方传递类型。这在 C 或 C++ 中毫无意义。你需要做
int i = 42;
foo(i);
或
foo(42);
您将类型作为参数传递,而不是对象。您需要在测试类型为 SelectionneNonSelectionne
的情况下执行characterSelection(screen, test);
。
我在最新的 Code::Block 的每晚版本中看到了这个问题。 当我在撰写本文时切换回 Code::Blocks 的稳定版本,20.03 时,问题消失了,我的代码编译和运行没有问题。 我不确定Code::Blocks在做什么,但它很烦人。 我在代码中每个NULL
的C++项目中反复得到这个,迫使我改用nullptr
。
相关文章:
- holeMenuProgram.cpp:38:1 错误:'}'令牌之前的预期主表达式
- (错误:令牌之前'<<'预期的主表达式)
- 错误:C++中']'令牌之前的预期主表达式
- 错误:令牌之前的预期主表达式'&&'
- 令牌之前']'预期的主表达式?
- 错误:令牌之前的预期主表达式'/'
- 正则表达式使用提升令牌迭代器在单引号和括号之间提取值
- 令牌之前')'预期的主表达式(需要"template"消除歧义器)
- 错误:令牌之前的预期主表达式'<':Arduino RGB 舞灯
- 令牌之前出现错误')'主表达式
- C++错误:错误:令牌之前的预期主表达式'||'
- 令牌问题之前'*'预期的主表达式
- 令牌之前的预期表达式']'?C
- 退出状态 1 令牌之前的预期主表达式'.'
- C++错误:";"之前应为主表达式使用Cmake的令牌
- 向量空Push_back在令牌之前调用'{'预期的主表达式
- 令牌调用之前'...'预期的主表达式 模板化类的模板化方法
- 错误 预期主表达式在 ';" 之前令牌 C++
- 令牌之前的预期主表达式'-'
- 令牌之前的预期主表达式'<'