【问题标题】:"expected ')' before '*' token" - On linux but not on Windows“预期 ')' 在 '*' 标记之前” - 在 linux 上但不在 Windows 上
【发布时间】:2009-09-10 01:14:18
【问题描述】:

需要帮助在 C 中编译。在家中使用 GCC(Windows,3.4.5)时,代码编译良好(即使使用 -Wall)。使用 uni 的 GCC(4.3.3,debian)时,我不断收到以下消息 - “在 '*' 令牌之前是“预期的 ')'”。可能是什么问题? (不用说,在学校农场编译是必须的)。

确切的错误信息: MatrixMultiplactionMacro.h:5: 错误: '*' 标记之前的预期')'

    #ifndef _MATRIXMULTIPLACTIONMACRO_H
#define _MATRIXMULTIPLACTIONMACRO_H

void pseudoMain(
            member* (*__allocateMember)(), 
            void (*__freeMember)(member*), 
            char* (*__memberToString)(member*), 
            void (*__setToZero)(member*), 
            void (*__multiplyMembers)(member*, member*, member*), 
            void (*__addMembers)(member*, member*, member*), 
            void (*__writeToMember)(char*, member*),
            void (*__duplicateMember)(member*, member*)
            );

#endif

有问题的行,因此: 成员* (*__allocateMember)(),

我做错了什么?

【问题讨论】:

  • 附带说明,在家里升级编译器可能会有所帮助。我相信 GCC 在 3.4 和 4.3 之间发生了一些重大变化。启用-Wall -Wextra -Werror 选项也可能有助于编译所有内容。如果您不介意这些警告,可以忽略 -Werror,但至少看到它们确实有帮助。
  • 他正在使用旧的编译器,因为直到最近,MinGW 和 Cygwin 都默认发布了 3.4。

标签: c gcc


【解决方案1】:

pseudoMain 的第一个参数是一个指向返回“成员”的函数的指针,它不是 C 或 C++ 关键字,我没有看到它的定义。也许您缺少#include?​​p>

【讨论】:

  • 谢谢你,沃伦。毕竟,这是一个缺失的环节。我觉得自己很愚蠢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多