POU: CheckPointer
Funzione di monitoraggio per puntatori (CheckPointer)
Utilizzare questa funzione per monitorare l'accesso alla memoria dei puntatori in modalità runtime. Al contrario di altri funzioni di monitoraggio, non esiste un suggerimento standard per l'attuazione di CheckPointer. È necessario definire un'implementazione in base alle proprie esigenze.
Il CheckPointer la funzione dovrebbe verificare se il puntatore passato fa riferimento o meno a un indirizzo di memoria valido e se l'orientamento dell'area di memoria di riferimento corrisponde o meno al tipo di variabile a cui si riferisce il puntatore. Se entrambe le condizioni sono soddisfatte, viene restituito il puntatore. In caso contrario, la funzione dovrebbe completare un'appropriata gestione degli errori.
Attenzione
Per ottenere la funzionalità per le funzioni di monitoraggio, non modificare la parte della dichiarazione. Tuttavia, è consentito aggiungere variabili locali.
Importante
Non si verifica una chiamata implicita alla funzione di monitoraggio per THIS puntatore e SUPER puntatore.
Importante
Nella versione del compilatore 3.5.7.40 e successive, il CheckPointer colpisce anche REFERENCE variabili come le variabili puntatore.
Dichiarazione:
//  Automatically generated code: DO NOT EDIT
FUNCTION CheckPointer : POINTER TO BYTE
VAR_INPUT
        ptToTest : POINTER TO BYTE;
        iSize : DINT;
        iGran : DINT;
        bWrite: BOOL;
END_VARAttuazione: (incompleta)
// Not a standard implementation. Insert your code here. CheckPointer := ptToTest;
- ptToTest: Indirizzo di destinazione del puntatore
- iSize: Dimensione della variabile di riferimento; il tipo di dati di- iSizedeve essere compatibile con- INTe coprono l'ambito dimensionale delle variabili
- iGran: Granularità della dimensione di riferimento; questo è il più grande tipo di dati non strutturati contenuto nelle variabili referenziate; il tipo di dati di- iGrandeve essere compatibile con- INT
- bWrite: Tipo di accesso (- TRUE= accesso in scrittura,- FALSE= accesso in lettura); il tipo di dati di- bWritedeve essere- BOOL
Quando il risultato del controllo è positivo, viene restituito il puntatore invariato (ptToTest).