POU:CheckPointer
ポインタ監視機能(CheckPointer)
この関数を使用して、ランタイムモードでポインタのメモリアクセスを監視します。他とは対照的に 監視機能、の実装のための標準的な提案は存在しません CheckPointer。独自の要件に従って実装を定義する必要があります。
The CheckPointer 関数は、渡されたポインタが有効なメモリアドレスを参照しているかどうか、および参照されているメモリ領域の方向がポインタが参照している変数タイプと一致するかどうかを確認する必要があります。両方の条件が満たされると、ポインタが返されます。そうでない場合、関数は適切なエラー処理を完了する必要があります。
注意
監視機能の機能を利用するには、宣言部分を編集しないでください。ただし、ローカル変数を追加することは許可されています。
重要
では暗黙的な監視関数呼び出しは発生しません THIS ポインターと SUPER ポインター。
重要
コンパイラバージョン3.5.7.40以降では、 CheckPointer 影響もあります REFERENCE 変数はポインタ変数と同じです。
宣言:
// 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と互換性がある必要がありますINTbWrite:アクセスタイプ(TRUE=書き込みアクセス、FALSE=読み取りアクセス);のデータ型bWriteである必要がありますBOOL
チェックの結果が正の場合、変更されていないポインタが返されます(ptToTest)。