簡體   English   中英

C 在函數中的 return 語句

[英]the return statement of C in a function

我是C語言的新手,我有一個關於C中return語句的問題:

void verifyValue(int value)
{
   return;
}

void handleValue(int value)
{
   switch(value)
   {
      case 1:
         // do something
         break;

      case 10:
         verifyValue(value);
         // the rest of code part 1
         break;
      default:
         break;           
   }
}

int main()
{
   int vlaue = 10;
   handleValue(value);

   // the rest of code part 2
}

所以verifyValue()函數將在case 10返回,一旦它返回,代碼部分 1 的其余部分會繼續執行還是代碼部分 2 的其余部分繼續執行, verifyValue()返回值是從哪里真正返回的?

case 10:
         verifyValue(value);
         // the rest of code part 1
         break;

verifyValue()函數並從該函數返回后

// 其余代碼第 1 部分

被執行。 在執行該break之后,您就可以退出switch構造。

稍后控制權返回到main()

// 其余代碼第 2 部分

被執行。

verifyValue()調用之后,break 語句將首先起作用,這將把控制帶出 switch case。 之后,handleValue 函數將返回,然后“代碼第 2 部分的其余部分”將繼續。

return語句僅從執行它的函數返回。 所以這個函數:

void verifyValue(int value)
{
    return;
}

什么都不做。 它只是立即返回。 調用該函數對代碼的邏輯流沒有影響。

“其余代碼第 1 部分”將執行。 然后handleValue()函數會在到達函數末尾時隱式返回。 然后“其余代碼第 2 部分”將執行。

return 語句導致被調用函數立即終止,因此,verifyvalue 函數中的 return 語句終止了該函數,並沒有結束句柄值函數。在該點之后繼續執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM