我正在用C语言制作类似流氓的游戏,但文件链接遇到了麻烦。
我正在制作一个自定义头文件,在其中声明结构数组,但是在编译此代码时:

#ifndef spells
#define spells

struct spells SpellList[55];

#endif // spells


我收到一个错误:预期标识符或'['标记前的'('。

最佳答案

您将标识符spells用于两个不同的目的:作为头文件的“保护宏”,以及作为结构的标记名。编译器无法理解您希望它们是独立的。使用所示代码,预处理阶段将使用标识符spells的所有内容替换为空,然后解析阶段将看到

struct SpellList[55];


这是无效的。

您必须重命名保护宏或struct标记。由于您永远不需要在其他任何地方引用保护宏,因此重命名保护宏可能是最简单的。

附带地,“ rouge”是一种化妆。您正在制作的游戏类似于rogue

关于c - C-“错误:预期标识符或'['标记前的'('”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48142539/

10-10 13:41