亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用goto到指定標簽名(變量存儲)?有什么辦法嗎?

如何使用goto到指定標簽名(變量存儲)?有什么辦法嗎?

C Yii
蕪湖不蕪 2021-09-17 11:11:23
如題,比如我想用一個char變量保存標簽名,goto跳轉的標簽以變量代替。能否實現?如:char c='p';goto c; //c為'p’cout<<"+";p:return 0;
查看完整描述

2 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

goto是無條件跳轉,只能在goto語句出現處改變控制流,無法通過本身返回。要用goto返回,可以定義多個label,在不同位置配合不同label使用goto語句。
label在函數內定義,作用域就是整個函數,和其它名稱一樣無法改變。由于不是左值,它沒有生存期,僅在編譯期有意義。
everyone998 錯誤。編譯器至少會對label標識符進行語義檢查。函數調用和goto是不同的。函數調用或返回時,一般的實現中需要根據調用約定清理堆棧。調用時先保存現場,復制實際參數,然后才是跳轉,并不是直接無條件跳轉那么簡單。也因此goto語句無法跨函數跳轉。

查看完整回答
反對 回復 2021-09-23
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

沒理解錯的話,題主指的是用變量存儲標簽以動態跳轉。
標簽地址了解一下,
void *label = &&p;
goto *label;
cout << "+";
p:
return 0;

查看完整回答
反對 回復 2021-09-23
  • 2 回答
  • 0 關注
  • 566 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號