C++可以通過異常處理的throw和catch來實現(xiàn)從子函數(shù)的子函數(shù)直接返回主函數(shù),匯編語言可以用jmp指令跳轉(zhuǎn)實現(xiàn)這個需求。
赫章ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
C語言主要靠函數(shù)調(diào)用和return在函數(shù)之間切換,很難做到在多層調(diào)用中直接返回主函數(shù)。雖然goto語句可以無條件跳轉(zhuǎn),但是必須在同一個函數(shù)中使用。
因此解決的方法也是用一個特殊的值作為需要返回的標志,然后在兩層調(diào)用函數(shù)中都遇到該值就返回,但是這個方法也有兩個前提:
1)你的兩個子函數(shù)都是由返回值的函數(shù)
2)你選擇的特殊值和函數(shù)正常的返回的取值不會沖突,不會引起二義性。
因此建議你的這個問題還是用C++ 的異常去解決比較好。
子函數(shù)只能給主函數(shù)一個返回值 或者操作主函數(shù)的一個參數(shù)(通過指針)
然后主函數(shù)通過判斷這個返回值或者參數(shù)決定是否退出
int?fun(int?a)
{
if?(a0)
return?1;
else
return?0;
}
main()
{
int?a;
while?(scanf("%d",a))
{
if?(fun(a)==0)
{
break;??
}
}
}
C/C++中,用return可以從任何子函數(shù)中退出返回到主調(diào)函數(shù),而exit()是用來退出程序返回操作系統(tǒng)的。至于怕把{}搞混了,那你是不可能回避的,因為{}是C/C++的重要語句成份,而且寫C/C++是提倡多用{}的——就是說不要輕易省掉,必要時還可以多加??梢?,程序員們的經(jīng)驗是{}不僅不會搞混,而且有助于代碼的閱讀!
函數(shù)都是并列關(guān)系,不存在一個嵌套另一個的問題,只能是一個調(diào)用另一個,在其中又調(diào)用另一個,一層層調(diào)用,正常情況都只有一個返回出口,也是一層一層返回,不能跳過。
直接調(diào)用就可以了。例如:
hanshu1(){
printf("this is hanshu1");
}
hanshu2(){
printf("this is hanshu2");
hanshu1();
}