erhöhter Codebedarf für Hidden-Adressberechnung
Das liegt daran, daß alle Datentypen größer 4 Byte nicht als call_by_value sondern als call_by_reference übergeben werden,
d.h. es wird nicht der Wert der Variablen (als Kopie) übergeben, sondern die Adresse der Original-Variablen.
Das ist in Step7 leider nicht so deutlich sichtbar wie z.B. in C, das muß man halt wissen.
Weil dadurch die Adresse der übergebenen Variablen zur Compilierzeit nicht bekannt ist, muß der Baustein die Adresse der Variablen
zur Laufzeit auflösen und in ein AR-Register laden, um danach den Wert der Variablen indirekt zu lesen.
Soweit ich mich erinnere, sind das bei jedem Zugriff etwa 42 Byte mehr Code als ein Zugriff auf Variablen im TEMP- oder STAT-Bereich.
Vorsicht!
Egal, ob die Struktur als IN, IN_OUT oder OUT übergeben wird, kann auf Variablen der Struktur geschrieben werden.
Dabei wird die Original-Variable verändert! Der Step7-Editor/Compiler verhindert das nicht!
Gruß Harald