Skip to main content

SA0076:列挙定数がありません

各列挙定数が条件として使用されるかどうかを決定します。 CASE ステートメントとクエリ CASE 支店。

理論的根拠:防御プログラミングでは、列挙型のすべての可能な値を処理する必要があります。特定の列挙値にアクションが必要ない場合は、コメントで明示的にマークする必要があります。そうすれば、コードの読者には、値が単に忘れられたのではないことが明らかになります。

重要度:低

83.
TYPE My_Enum :
(
    red := 1, blue := 2, green := 3, black := 4
);
END_TYPE
PROGRAM PLC_PRG
VAR
    iVar : My_Enum;
    xTemp : BOOL;
END_VAR
iVar := My_Enum.black;
CASE iVar OF
    My_Enum.red:
        xTemp := FALSE;
    My_Enum.blue, My_Enum.green:
        xTemp := TRUE;
    ELSE
        xTemp := NOT xTemp;
END_CASE

での出力 メッセージ ビュー:

  • sa_icon_message.png SA0076: CASE ステートメントに列挙定数 'black' がありません