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

2022-05-31 00:00:00 main c c++

我有一个类似于以下代码的代码:

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

int motors()
{
     if (condition)
     {
          'some
           code'
           main();
     }
     else if (condition)
     {
          'some
           code'
           main();
     }
     else
     {
           main();
     }
}

我可以做些什么来防止反复调用Main?我可以使用Main的代码创建另一个函数吗?


解决方案

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

int main()
{
    wrapper();
}

void wrapper()
{
    //code originally in main
}

当您需要调用main时,请改为调用此包装。

int motors()
{
     if (condition)
     {
         wrapper();
     }

相关文章