Skip to main content

SA0019: 暗黙的なポインタ変換

暗黙的に生成されたポインター変換を検出します

正当化:はい CODESYSポインタは厳密に入力されているわけではなく、どのような方法でも相互に割り当てることができます。これはよく使われるので、コンパイラからは報告されません。ただし、不正アクセスや予期しないアクセスにつながる可能性もあります。たとえば、タイプを割り当てたとします。 POINTER TO DWORD 次の型のポインタへ POINTER TO BYTE、メモリは望ましくない方法で上書きされる可能性があります。

したがって、常にこのルールを確認して、意図的に別のタイプの値にアクセスしたい場合にのみメッセージをブロックしてください。

への変換、およびからの変換 POINTER TO BYTE データ型は SA0019 ルールではチェックされません。これらは常に許可されています

暗黙的なデータ型の変換は、別のメッセージで報告されます。

重要性:高い

PLCopenルール:CP25

例外: BOOL <-> BIT

54.
PROGRAM PLC_PRG
VAR
    pInt : POINTER TO INT;
    byteVar : BYTE;
END_VAR
pInt := ADR(byteVar);

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

  • sa_icon_message.png SA0019: 'バイトへのポインタ' へのポインタから 'ポインタから INT へのポインタ' への暗黙の変換