Skip to main content

POU:CheckPointer

ポインタ監視機能(CheckPointer)

この関数を使用して、ランタイムモードでポインタのメモリアクセスを監視します。他とは対照的に 監視機能、の実装のための標準的な提案は存在しません CheckPointer。独自の要件に従って実装を定義する必要があります。

The CheckPointer 関数は、渡されたポインタが有効なメモリアドレスを参照しているかどうか、および参照されているメモリ領域の方向がポインタが参照している変数タイプと一致するかどうかを確認する必要があります。両方の条件が満たされると、ポインタが返されます。そうでない場合、関数は適切なエラー処理を完了する必要があります。

注意

監視機能の機能を利用するには、宣言部分を編集しないでください。ただし、ローカル変数を追加することは許可されています。

重要

では暗黙的な監視関数呼び出しは発生しません THIS ポインターと SUPER ポインター。

重要

コンパイラバージョン3.5.7.40以降では、 CheckPointer 影響もあります REFERENCE 変数はポインタ変数と同じです。

538. テンプレート

宣言:

//  Automatically generated code: DO NOT EDIT
FUNCTION CheckPointer : POINTER TO BYTE
VAR_INPUT
        ptToTest : POINTER TO BYTE;
        iSize : DINT;
        iGran : DINT;
        bWrite: BOOL;
END_VAR

実装:(不完全)

//  Not a standard implementation. Insert your code here.
CheckPointer := ptToTest;
. 関数が呼び出されると、次の入力パラメーターを受け取ります。
  • ptToTest:ポインタのターゲットアドレス

  • iSize:参照される変数のサイズ。のデータ型 iSize と互換性がある必要があります INT 変数の次元スコープをカバーします

  • iGran:参照サイズの粒度。これは、参照される変数に含まれる最大の非構造化データ型です。のデータ型 iGran と互換性がある必要があります INT

  • bWrite:アクセスタイプ(TRUE =書き込みアクセス、 FALSE =読み取りアクセス);のデータ型 bWrite である必要があります BOOL

チェックの結果が正の場合、変更されていないポインタが返されます(ptToTest)。