Skip to main content

SA0061 : Opération inhabituelle sur le pointeur

Détecte les opérations sur des variables de type POINTER TO qui ne sont pas = (égalité), <> (inégalité), + (ajout), ou ADR.

Dans CODESYS, l'arithmétique de pointeur est généralement autorisée et peut également être utilisée de manière appropriée. Par conséquent, l'ajout d'un pointeur avec une valeur entière est considéré comme une opération courante sur les pointeurs. Cela permet d'utiliser un pointeur pour traiter un tableau de longueur variable. Toutes les autres opérations (inhabituelles) avec des pointeurs sont signalées avec SA0061.

Importance : Élevée

Règle PLCopen : E2 / E3

Exemple 72. Exemple
PROGRAM PLC_PRG
VAR
    piTemp : POINTER TO INT;
    iTemp : INT;
END_VAR
iTemp := iTemp + INT#1;
piTemp := ADR(iTemp);
piTemp := piTemp * DWORD#5;   // SA0061
piTemp := piTemp / DWORD#2;   // SA0061
piTemp := piTemp MOD DWORD#3; // SA0061
piTemp := piTemp + DWORD#1;
piTemp := piTemp - DWORD#1;   // SA0061

Sortie dans le messages voir:

  • sa_icon_message.png SA0061 : Fonctionnement inhabituel sur le pointeur