Hallo Siro,
Genau so ist es.
Man kann in jedem Block heute eine lokale Variable festlegen, OK, bei K&R war das noch nicht erlaubt.
Vermutlich wird der Compiler die einzelne Variable gar nicht auf dem Stack ablegen, sondern in einem Register behalten.Code:void function(void) { int i; // mach was mit i { int i2; // mach was mit i und i2 } // ab hier gibt es i2 nicht mehr // mach noch was mit i }
Kommt aber auf die CPU und den restlichen Code an.
Es gibt noch das Keyword register, damit konnte man dem Compiler nahelegen, welche Variablen, wenn möglich, in einem Register abgelegt werden sollen. Das war so eine "per Hand" Optimierung. Heute hat register keinen praktischen Wert mehr, der Compiler optimiert dies automatisch.
MfG Peter(TOO)
Lesezeichen