【问题标题】:Visual Studio 2013 c++ function syntax errorVisual Studio 2013 c++ 函数语法错误
【发布时间】:2014-04-13 00:06:15
【问题描述】:

我正在使用 VS 2013,由于某种原因,在 C++ 控制台应用程序中,简单的函数声明将不起作用。怎么回事?

我有#include iostream,代码在 int main () {...} 主体内。

-TSR

更新:

这是完整的程序

【问题讨论】:

  • 你能告诉我们整个代码(包括主代码)
  • 你不能在其他函数中定义函数。
  • 请将您的想象转换为实际文本,图像会受到链接腐烂的影响,这将使这个问题对未来的访问者毫无用处。您可以使用 cmets 指示错误发生的位置。

标签: c++ function compiler-errors visual-studio-2013


【解决方案1】:

查看我程序中的注释。您应该在 main 方法之外编写函数。

/* Wrong code
-----------------------------------------
*/
#include <iostream>

int main()
{
 int printmessage ()
 {
 }
}


/* Correct code
----------------------------------------
*/
#include <iostream>

int printmessage ()
{
}

int main()
{    
}

【讨论】:

  • 由于您的大部分内容是图像,您应该添加更多内容,因为图像会受到链接腐烂的影响,这会使这个答案变得不那么有用。
【解决方案2】:

你不能在另一个函数中定义一个函数,尽管你可以声明一个。所以这样的事情是允许的:

int main()
{
    void func1() ; // function declaration but not definition.
}

void func1()
{
  //...    
}

但这可能对你来说更有意义:

int printmessage()
{
    //...
}

int main()
{
}

函数定义只允许在命名空间或类范围内,来自草案 C++ 标准部分8.4函数定义段落2说:

[...]函数只能在命名空间或类范围内定义。

【讨论】:

    【解决方案3】:

    在主循环中不能有函数定义。您可以在 main(int argc, char** argv) 之前使用函数原型,也可以在 main 之前定义函数。

    // Either define your function here
    void Foo() { }
    
    // Or use this prototyping
    void Bar();
    
    int main ()
    {
        // Call your function here
        Foo();
    
        return EXIT_SUCCESS;
    }
    
    void Bar() { }
    

    希望这会有所帮助。

    对于另一个函数内部的函数声明,它只是对C编程的向后兼容。我怀疑是否有人再使用它。另外,这是 C++ 而不是 C

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多