Forum: Compiler & IDEs Compilierter Coder wird mit zusätzlichen Zeilen kleiner?!


von Chritian (Gast)


Lesenswert?

Hallo liebe Forenmitglieder,

ich habe gerade wirklich unerklärliches (für mich) entdeckt.
Mein Code wird durch hinzufügen der folgenden Zeilen
1
// index check
2
if ( (index & 0x03) != (EE_FIRST & 0x03) 
3
|| index < EE_FIRST
4
|| index > EE_LAST-4 ) {
5
;//indexfehler!!!
6
}
kleiner.
Ohne diese Zeilen (mit /* */ auskommentiert) hat er:
1
Program:    1196 bytes (29.1% Full)
2
(.text + .data + .bootloader)
mit aber nur
1
Program:    1192 bytes (29.1% Full)
2
(.text + .data + .bootloader)

Ausser den 4 Zeichen zum Auskommentieren wurde zwischen den beiden 
"Messungen" nichts verändert. Nichtmal ein Zeilenumbruch.

Kann sich/mir das einer erklären?

PS:
Ja, der Code ist so noch nicht fertig, und die Zeilen geben so auch 
keinen Sinn, könnten also wegoptimiert werden, aber dass er dann gleich 
so gut optimiert und weitere 4 byte freimacht?! Ich finds lustig, aber 
auch komisch!

von (prx) A. K. (prx)


Lesenswert?

Die Wege des Optimizers sind unergründlich ;-).

Aber aus diesem nicht compilierbaren Fetzen Code lässt sich nichts 
aussagen.

von Michael H. (overthere)


Lesenswert?

Standardvorschlag: Listing anschauen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.