防止在C++中递归调用 main()
Prevent from calling main() recursively in 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();
}
有一个简单的避免递归调用函数的方法:不要这样做!事实上,很少需要从程序内部调用main
,我认为通常应该不惜一切代价避免它(除了"聪明的黑客",例如 IOCCC 中使用的那些)。
相反,您应该使用循环:
int main()
{
for (;;)
{
some_code_that_calls_motors();
}
}
然后只需从函数和调用调用链返回,直到您回到main
并且循环重新开始。
相关文章:
- 当我尝试在 Main 中调用插入函数时,它不是取数字?
- 我想在 Main 中用 C++ 调用其他类中的一个类,但我做不到
- 为什么 class 的函数没有在 main 中被调用?
- 如何从不同的类中获取函数来调用在 Main 中声明的对象?
- 我可以调用从 main() 覆盖的虚拟函数吗?
- 如何在 cpp 的 main() 中调用此函数
- C++:将向量传递给函数,然后在main中调用函数.错过了什么
- 调用Main将替换矢量对象并覆盖数据
- 当我调用 main 中使用 const 对象的 const 函数时,不断出现错误
- QT C++,从子层次结构调用 main 中的函数
- 如何从另一个.cpp源文件调用main.cpp中定义的方法
- 为什么我的程序在调用main之前就退出了
- 调用main()之外的函数
- C++-通过调用main()函数重新启动游戏
- 防止在C++中递归调用 main()
- 在调用main函数之前,是否有方法解析命令行选项?
- 1-d结合2-d阵列.需要调用main中的函数
- 在调用main()函数之前重置全局对象中的向量
- 在android中通过jni在c中调用Main
- 函数调用main和库中的不同行为