防止在C++中递归调用main()

Sam*_*ved 3 c c++ program-entry-point

我有类似的代码如下:

int main()
{
    'some
     code'
     motors();
}

int motors()
{
     if (condition)
     {
          'some
           code'
           main();
     }
     else if (condition)
     {
          'some
           code'
           main();
     }
     else
     {
           main();
     }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办才能防止一次又一次地调用main?我可以使用main的代码创建另一个函数吗?

Yu *_*Hao 5

调用main是C++中未定义的行为.您可以将最初的所有函数包装main到另一个函数中.

int main()
{
    wrapper();
}

void wrapper()
{
    //code originally in main
}
Run Code Online (Sandbox Code Playgroud)

无论何时需要调用main,都要调用此包装器.

int motors()
{
     if (condition)
     {
         wrapper();
     }
Run Code Online (Sandbox Code Playgroud)