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!
