c++ - 错误 C2601 : 'main' : local function definitions are illegall - MS VS 2013 Compiler

标签 c++ visual-c++

我正在用 C++ 编写一个小程序。当我尝试使用 MS VS 2013 编译器编译它时出现错误:“C2601:'main':局部函数定义是非法的”。这是什么意思?我的代码是:

#include <iostream>
int n;
int pomocniczaLiczba;
using namespace std;
int ciong(int n){
    switch (n)
    {
    case 1:
        return 1;
        break;
    case 2:
        return 2;
        break;
    default:
        pomocniczaLiczba = ciong(n - 2) + ciong(n - 1) * ciong(n - 1);
        return pomocniczaLiczba;
        break;
    }
int main()
{
    cin >> n;
    cout >> ciong(n);
    return 0;
}
}

最佳答案

你的包围坏了。最终结果是您试图定义您的 main内部功能ciong .而且C++不支持嵌套的函数定义。因此编译器错误。

代码应该是:

#include "stdafx.h"
#include <iostream>
using namespace std;


int ciong(int n)
{
switch (n)
{
case 1:
    return 1;
    break;
case 2:
    return 2;
    break;
default:
    int pomocniczaLiczba = ciong(n - 2) + ciong(n - 1) * ciong(n - 1);
    return pomocniczaLiczba;
    break;
}
} // <----- Oops, this was missing in your code

int main()
{
int n;
cin >> n;
cout << ciong(n) << endl;
return 0;
}

还有其他错误。例如,您的意思是 cout << ciong(n) .

关于c++ - 错误 C2601 : 'main' : local function definitions are illegall - MS VS 2013 Compiler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19460076/

相关文章:

c++ - 使用鼠标拖动的 OpenGL 绘图矩形?

java - 实现持久 B 树

c++ - 比较两个不同数组中的字符值

c++ - VC中如何改变ContextMenu的顺序?

c++ - is_std_swappable 的正确实现

c++ - 如何忽略前 50 秒的信号?

c++ - 用于从汇编代码中提取 API 调用序列和控制流图的开源代码

c++ - 在类外定义函数时出错

c++ - 标识符 "__readgsqword"未定义 - Visual Studio 2017

c++ - 在Windows 8.1中使用OpenCV在C++中加载图像需要很长时间