跳转到内容

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
华夏公益教科书