Also bisher dachte ich, dass der gcc gemäß ANSI-C optimiert, also beispielsweise diese Warteschleife wegoptimiert, wenn alle Optimierungen aktiviert sind (-O5):
long int i=0;
while (++i<1234567890);
Aber die Ausführungszeit von
int
main (void)
{
long int i=0;
while (++i<1234567890);
return (0);
}
zeigt, dass dies nicht so ist.
Wie bekommt man denn solche Warteschleifen ohne volatile-Variablen vom gcc korrekt wegoptimiert?
Lesezeichen