跳转到内容

Ada 编程/编译指示/抑制

来自维基教科书,自由的教科书

Ada. Time-tested, safe and secure.
Ada. 经时间考验,安全可靠。

编译指示 Suppress 抑制编译器生成的运行时检查。如果运行时检查被禁用,异常可能会被抑制,并且可能导致未定义的行为。 编译指示 Suppress 由程序员自行承担风险使用。

可以抑制的检查有

  • Access_Check - 检查空访问值的解引用。Constraint_Error 被抑制。
  • Accessibility_Check - 检查对不可访问的对象或子程序的访问。Program_Error 被抑制。
  • Discriminant_Check - 检查对辨别式记录中不可用组件的访问(鉴于辨别式)。Constraint_Error 被抑制。
  • Division_Check - 检查除以零。Constraint_Error 被抑制。
  • Elaboration_Check - 检查未详细说明的包或子程序体。Program_Error 被抑制。
  • Index_Check - 检查数组索引是否超出范围。Constraint_Error 被抑制。
  • Length_Check - 检查数组长度违规。Constraint_Error 被抑制。
  • Overflow_Check - 检查数字溢出。Constraint_Error 被抑制。
  • Range_Check - 检查标量变量的取值范围。Constraint_Error 被抑制。
  • Storage_Check - 检查是否有足够的存储空间来容纳子程序调用。Storage_Error 被抑制。
  • Tag_Check - 检查对象标签是否无效。Constraint_Error 被抑制。
  • All_Checks - 上述所有检查
My_Array : Array ( 1 .. 100 ) of Integer;
pragma Suppress( Index_Check );
...
Some_Variable := My_Array( 1000 ); -- Erroneous execution, here we come!

维基教科书

[编辑 | 编辑源代码]

Ada 参考手册

[编辑 | 编辑源代码]

Ada 2005 参考手册

[编辑 | 编辑源代码]

Ada 质量和风格指南

[编辑 | 编辑源代码]
华夏公益教科书