Skip to main content

SA0040:ゼロによる除算の可能性

ゼロ除算が発生する可能性のあるコードを判別します。

正当化: による除算 0 エラーが発生します。除算する変数は常に最初に 0 であるかどうかをチェックする必要があります。

重要性:高い

49.
VAR_GLOBAL
    g_iVar AT %QW1 : INT;
END_VAR
PROGRAM PLC_PRG
VAR
    iCounter : INT;
    iSumme:INT;
    iMid:INT;
    iVal1:INT := INT#2;
    iVal2:INT;
    iVal3:INT := INT#3;
    iVal4:INT := INT#4;
    iVal5:INT;
END_VAR
IF iVal2 <> 0 THEN
    iVal1 := iVal1/iVal2;    // no error
END_IF;
iMid := iSumme / iCounter;    // SA0040
iCounter := iCounter + INT#1;
iSumme := g_iVar + iSumme;
IF iMid < INT#100 THEN
    iVal1 := iVal1 / iVal2;    // SA0040
END_IF

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

  • sa_icon_message.png SA0040: ゼロ除算の可能性

  • sa_icon_message.png SA0040: ゼロ除算の可能性