跳轉到內容

Ada 程式設計/編譯指示/No Return

來自華夏公益教科書,自由的教科書

Ada. Time-tested, safe and secure.
Ada. 經久耐用、安全可靠。
pragma No_Return (local_name);

No Return 是一個表示 編譯指示 用於 過程,它表明一個過程永遠不會正常返回;也就是說,它會引發一個 異常,無限迴圈,或終止程式(例如,透過像 C 的 exit 這樣的匯入函式,或觸發硬體復位)。

在呼叫點,這使得能夠檢測死程式碼並抑制關於缺少 return 語句或缺少對變數賦值的警告。

編譯器確保一個非返回過程確實不會返回,如果它會返回,則會引發 Program_Error

procedure P ( … );
pragma No_Return (P);
procedure Q (x: out … ) is
begin
  if Cond
  then P ( … );
    Some_Thing_Else; -- This is dead code--and due to No_Return probably a compiler warning!
  else x := … ;
  end if;
  -- No warning about a missing assignment to x here
end Q;

可移植性

[編輯 | 編輯原始碼]

自從 Ada 2005 以來,pragma No_Return 在語言中成為了標準。一些編譯器(例如 GNAT 和 AdaMagic)在之前就已經將 No_Return 識別為實現定義的編譯指示。[1]

華夏公益教科書

[編輯 | 編輯原始碼]

Ada 參考手冊

[編輯 | 編輯原始碼]

參考文獻

[編輯 | 編輯原始碼]
  1. AI95-00329 in Appendix: From: Tucker Taft, Sent: Tuesday, March 4, 2003 11:13 AM
華夏公益教科書