c - 干净地退出 C 函数

标签 c function return

我有几个函数。基本上是一个菜单,用户可以在其中选择 1-n 个不同的选项,并且每个选项都有与之关联的功能。在这个例子中,它被简化了。

我试图确定的是过早退出函数的最佳方式。例如,当用户在菜单选项的功能中按下 enter 键时,我希望程序将它们发送回菜单而不在该功能中运行任何其他内容。

在下面的例子中,我简单地调用了 showMenu() 并在它之后放置了一个 return 语句。唯一的问题是,如果用户退出多个函数,最后将需要解开一系列返回语句。

有人可以告诉我是否有更有效的方法来实现这一点,或者我是否赚钱。

void showMenu()
{
   //Display menu

   //Prompt user for menu option

   //Run function of appropriate menu option
   runSelectedFunction();
} 

void runSelectedFunction()
{
   //Get user input for the function and validate

   //Check if the user input was only a '\n' if so show the menu and exit
   showMenu();
   return;

   //Do the stuff that this function is meant to do.
}

最佳答案

我觉得不错。或者 - 因为周围有很多人反对让多个导出点形成一个单一的功能 - 你可以这样做:

void func()
{
   //get input

   if ( checkMenu() )
   {
      //do the stuff I am meant to do
   }
   else
   { 
      showMenu();
   }
}

因此您避免向您的函数添加第二个返回值。您也可以根据需要始终在函数末尾调用 showMenu()

第一个

马里奥

关于c - 干净地退出 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5547600/

相关文章:

c - 将大整数打印为指数函数

php - OOP PHP 类从一行调用调用 function1()->function2()

c - C函数构建中的星号位置是什么意思?

scala - Foo在Scala中不带参数编译错误?

c# - 无法修改返回值,因为它不是变量

c - Strtol 不会在溢出转换时设置 errno

c - 使用 const 代替变量声明的空指针

c - 编译后的 "Hello World"C 程序如何使用机器语言存储字符串?

Java让线程返回一些东西给主线程

JavaScript 函数作用域问题