kopf- und fussgesteuerte schleife mit mingw (evtl auch gcc)
-
while(pos*pos<=x){ if(x%pos==0) return false; pos+=step[m]; m=(m+1)&7; }while(pos*pos<x);
-
wow die ist ja kopf und schwanzgesteuert.
-
Compiler Bug: Das zweite while wird aber nicht ausgewertet.
-
Nee, das ist kein Compiler Bug. Vielleicht wirds etwas klarer, wenn mans vernünftig schreibt.
while(pos*pos<=x){ if(x%pos==0) return false; pos+=step[m]; m=(m+1)&7; } while(pos*pos<x) ;
-
Mein BCB 6 sagt zum zweiten while: 'Code hat keine Auswirkung'.
Womit er nicht ganz unrecht hat.Braver Compiler.
-
Dein compiler ist wirklich nicht dumm.
Es würde mich aber interessieren was dein compiler dazu sagt.while(pos*pos<=x){ if(x%pos==0) return false; pos+=step[m]; m=(m+1)&7; } pos = 0; while(pos*pos<x) ;
Das hätte sehr wohl Auswirkungen ( Endlosschleife ).
Kurt
-
Hab ihn grad nicht da. Aber die erwartete Antwort (nach Erfahrung mit dem Compiler) wäre "unreachable Code".
Vielleicht ist Joe so lieb und prüft das auch noch schnell nach (o:
Sollte ers bei dieser Form nicht Verwarnen, dann spätestens wenn noch anschliessender Code steht.
Allerdings ist das Laufzeitproblem unbestritten.
-
Natürlich bleibt er bei der Warnung...
Aber mir reicht die Warnung auch. Ist Grund genug, mir solche Zeilen noch mal anzusehen.
-
'Code wird nie erreicht' gibt es bei solchen Konstrukten:
int pos; if (pos > 0) { pos--; return; } else { pos++; return; } return; // <- hier gibt es die Warnung