SA0134: Conversioni firmate/non firmate esplicitePermalink

Rileva le conversioni esplicite da tipi di dati con segno a tipi di dati senza segno e viceversa.

Giustificazione: L'uso eccessivo di conversioni di tipo può indicare che sono stati scelti tipi di dati sbagliati per le variabili. Per questo motivo, esistono linee guida di programmazione che richiedono una giustificazione esplicita per le conversioni dei tipi di dati.

Importanza: Basso

Esempio

PROGRAM PLC_PRG
VAR
	byVar :BYTE;
	udiVar : UDINT;
	uliVar : ULINT;
	lwVar : LWORD;
	wVar : WORD;
	siVar	: SINT;
	iVar	: INT;
	diVar : DINT;
	liVar	: LINT;
END_VAR
liVar := ULINT_TO_LINT(uliVar);
udiVar := DINT_TO_UDINT(diVar);
siVar := BYTE_TO_SINT(byVar);
wVar := INT_TO_WORD(iVar);
lwVar := SINT_TO_LWORD(siVar);

--> SA0134: Explicit signed/unsigned conversion from type 'ULINT' to type 'LINT'
--> SA0134: Explicit signed/unsigned conversion from type 'DINT' to type 'UDINT'
--> SA0134: Explicit signed/unsigned conversion from type 'BYTE' to type 'SINT'
--> SA0134: Explicit signed/unsigned conversion from type 'INT' to type 'WORD'
--> SA0134: Explicit signed/unsigned conversion from type 'SINT' to type 'LWORD'