首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ goto 標號非指標,無法以變數動態跳轉

     編輯:程式設計疑難解答

結論

goto 的標號(Label)僅為編譯器識別符號,屬於靜態程式碼位置標記,不具備指標屬性,無法像函數指標那樣儲存於變數、陣列或動態計算跳轉目標。

替代方案

  • 將需跳轉的程式碼封裝為函數,使用函數指標 void (*fp)() 實現動態分派。
  • 採用狀態機模式:switch(state) { case 1: func1(); break; ... }。
  • 使用 std::function 與 std::map 映射命令字串至處理器。

說明

現代 C++ 極少使用 goto,結構化程式設計(函數、迴圈、例外)足以替代所有合理用例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved