【问题标题】:ERROR: '::main' must return 'int' [duplicate]错误:'::main' 必须返回 'int' [重复]
【发布时间】:2016-11-02 14:05:39
【问题描述】:

这是我的主要功能:

void main(int argc, char **argv)
{
    if (argc >= 4)
    {
        ProcessScheduler *processScheduler;
        std::cout <<
            "Running algorithm: " << argv[2] <<
            "\nWith a CSP of: " << argv[3] <<
            "\nFilename: " << argv[1] <<
            std::endl << std::endl;

        if (argc == 4)
        {
            processScheduler = new ProcessScheduler(
                argv[2],
                atoi(argv[3])
            );
        }
        else
        {
            processScheduler = new ProcessScheduler(
                argv[2],
                atoi(argv[3]),
                atoi(argv[4]),
                atoi(argv[5])
            );
        }
        processScheduler -> LoadFile(argv[1]);
        processScheduler -> RunProcesses();

        GanntChart ganntChart(*processScheduler);
        ganntChart.DisplayChart();
        ganntChart.DisplayTable();
        ganntChart.DisplaySummary();

        system("pause");

        delete processScheduler;
    }
    else
    {
        PrintUsage();
    }
}

我编译时遇到的错误是这样的:

Application.cpp:41:32: 错误:'::main' 必须返回 'int'

这是一个 void 函数,我如何返回 int 以及如何修复它?

【问题讨论】:

标签: c++


【解决方案1】:

尝试这样做:

int main(int argc, char **argv)
{
    // Code goes here

    return 0;
}

return 0;向操作系统返回一个0,表示程序执行成功。

【讨论】:

  • return 0; 在 C++ 中是隐含的,没有必要。
  • 是的,我同意。它是为了约定而存在的,是一种很好的做法,因此没有歧义。
  • 谢谢,我想要 void main 并且什么都不返回,但我想它必须是 int。将 void 更改为 int 后确实解决了错误
  • @Michael 这不是解决方案。
  • @roottraveller 你能提供一些关于为什么不是这样的见解吗?
【解决方案2】:

C++ 要求 main() 的类型为 int

【讨论】:

【解决方案3】:

函数声明为int main(..);,因此将void的返回值更改为int,并在主函数末尾更改return 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2013-08-26
    • 2016-03-13
    • 2018-03-08
    • 2012-09-16
    相关资源
    最近更新 更多