我有一个非常快速的问题.哪个更"标准"使用?转到还是返回一个函数?
转到示例:
main(){
start:
//some code
goto start;
}
main(){
//some code
return main();
}
Run Code Online (Sandbox Code Playgroud)
两者都将循环脚本.但我想知道哪一个更适合使用.
goto似乎非常好,但使用它有什么缺点吗?(我只是想知道,因为一名教练因为goto功能Oo失败了,我想知道为什么,或者他做了什么是合理的.)
如果你问为什么要问这个,我正在尝试创建一个带子菜单的菜单,其中子菜单包含一个"后退"选项(我要么使用goto还是返回)
Jon*_*oni 10
这里合理的做法是使用循环.它具有与a相同的效果,goto
但被认为是更好的实践,因为它遵循结构化编程的规则,而不是之前常见的不可维护的面条汤编程.
int main(void) {
while (1) {
//some code
}
}
Run Code Online (Sandbox Code Playgroud)
如果递归具有明确定义的限制,则递归调用函数也可以被认为是好的样式.C中的无限递归通常会导致堆栈溢出错误,因为很少有编译器实现尾调用优化.