【问题标题】:error: expected declaration or statement at end of input in c错误:c 中输入末尾的预期声明或语句
【发布时间】:2012-01-03 04:15:43
【问题描述】:
void mi_start_curr_serv(void){
#if 0
 //stmt
#endif    
}

我的编译器中出现“错误:输入末尾的预期声明或语句”错误。我找不到上述功能的任何错误。请帮助我理解这个错误。

【问题讨论】:

  • ;(还有一些其他的角色让我很开心)
  • 如果那是确切的代码,那就不知道了。这是一个空函数,应该可以毫无问题地编译。还有什么你没有展示的吗? :P
  • 现在,如果有更多代码,您可能会发现某处缺少}...
  • 您的 C 编译器是否接受 C99/C++ //...EOL cmets?文件中的最后一个字符是否有换行符?
  • 我经常在前向声明时将方法签名复制并粘贴到我的代码顶部。我记得有几次我忘记用 ';' 替换 '{'在前向声明中。您可能也想看看那里(供将来看到此帖子的人使用)。

标签: c


【解决方案1】:

通常在代码中某处遗漏} 时会发生该错误,例如:

void mi_start_curr_serv(void){
    #if 0
    //stmt
    #endif

由于函数末尾缺少},将失败并出现此错误。您发布的代码没有此错误,因此它可能来自您源的其他部分。

【讨论】:

  • main 末尾很可能是一个不平衡的}。否则很有可能出现其他错误。
  • 谢谢.. 我错过了另一个影响此功能的函数中的 } 右括号。感谢您正确指出。
  • 有同样的错误。第二双“眼睛”总是更好,即使它们来自互联网!
  • 对我来说,它来自一个包含文件,我在其中写了 void foo(void) { 而不是 void foo(void); 因为复制粘贴...
  • 正确的很可能是“}”
【解决方案2】:

对我来说,这个问题是由函数调用的函数中的 if 语句末尾缺少 ) 引起的,该函数报告了错误。尝试在输出中向上滚动以查找编译器报告的第一个错误。修复该错误可能会修复此错误。

【讨论】:

    【解决方案3】:

    您可能有语法错误。 您很可能忘记在此函数上方的某处放置};

    【讨论】:

    • 欢迎来到 Stack Overflow。这对我来说很不清楚。请您编辑您的答案以澄清吗?如果需要,我们可以帮助您对其进行格式化。
    • 对我来说,我可以说它缺少},但不在编译器指向的行号上。所以其他人对此感到厌倦。
    【解决方案4】:

    对我来说,报告错误的代码调用的函数中缺少 } 括号。还报告了调用缺少 } 的函数的函数的代码。如果您不知道自己在寻找什么,那么可能很难找到。

    【讨论】:

      【解决方案5】:

      尝试放置一个

      返回 0;

      在代码的末尾或只是删除

      无效

      来自您的主要功能 希望能帮到你

      【讨论】:

        【解决方案6】:

        对我来说,我只是注意到这是我的 .h 存档,带有“{”。可以帮助某人的Maye =)

        【讨论】:

          【解决方案7】:

          对于尝试运行 mpi 程序并收到上述错误的任何人,在这些符号之前或之后删除推荐 { } 似乎可以解决问题。

          我有 kali 和 ubuntu wsl,在 kali 中程序运行良好,但在 ubuntu 中我必须删除 cmets 才能运行程序

          【讨论】:

          • 如果您有新问题,请点击 按钮提出问题。如果有助于提供上下文,请包含指向此问题的链接。 - From Review
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-04-11
          • 1970-01-01
          • 2013-08-18
          • 1970-01-01
          • 2020-08-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多