SA0133: Conversioni di restringimento esplicitePermalink

Rileva le conversioni esplicite da un tipo di dati più grande a un tipo di dati più piccolo.

Giustificazione: Un numero elevato 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 SA0133
VAR	
	siVar:SINT;
	diVar:DINT;
	liVar:LINT;
	byVar:BYTE;
	uiVar:UINT;
	dwVar:DWORD;
	lwVar:LWORD;
	rVar:REAL;
	lrVar:LREAL;
END_VAR
siVar := LINT_TO_SINT(liVar);     // SA0133
byVar := DINT_TO_BYTE(diVar);	 // SA0133
siVar := DWORD_TO_SINT(dwVar);	// SA0133
uiVar := LREAL_TO_UINT(lrVar);	// SA0133
rVar := LWORD_TO_REAL(lwVar);	 // SA0133

--> SA0133: Explicit narrowing conversion from type 'LINT' to type 'SINT'
--> SA0133: Explicit narrowing conversion from type 'DINT' to type 'BYTE'
--> SA0133: Explicit narrowing conversion from type 'DWORD' to type 'SINT'
--> SA0133: Explicit narrowing conversion from type 'LREAL' to type 'UINT'
--> SA0133: Explicit narrowing conversion from type 'LWORD' to type 'REAL'