Power wrote:
> @ johnny.m:
> Wann hast du das letzte mal in ein C-Buch geschaut? Kennst du den
> Unterschied zwischen
>
1 | > do
|
2 | > {
|
3 | > ...
|
4 | > }
|
5 | > while (irgendwas=1);
|
6 | >
|
> und
>
1 | > while (irgendwas=1)
|
2 | > {
|
3 | > ...
|
4 | > }
|
5 | >
|
> ?
> Nix für ungut, aber da ist ein gravierender Unterschied!
Das ist schon richtig.
Aber das stand gar nicht zur Debatte.
Fakt ist, dass alle 3 Schreibweisen:
1 | while(1);
|
2 |
|
3 | while(1)
|
4 | {
|
5 | }
|
6 |
|
7 | while(1)
|
8 | {
|
9 | ;
|
10 | }
|
absolut identisch sind und vor allen Dingen, völlig richtig.
Vor
while(1);
fehlt keineswegs ein do.
Das ist eine ganz normale while-Schleife bei der der
Schliefenkörper aus einem einzigen Statement besteht,
nämlich aus dem leeren Statement.
Vielleicht siehst du das besser, wenn man das umformatiert
while(1)
;
Vielleicht solltest du in ein C-Buch schauen :-)
> Und man sollte
> sich nicht eine einfache Schreibweise angewöhnen die etwas anderes
> beinhaltet als nachher 'rauskommt, weil der Compiler wegen nie
> erfüllbarer Bedingung etwas Anderes draus optimiert.
Im genannten Beispiel gibt es keine nie erfüllbaren
Bedingungen. Und auch mit Optimieren ist nichts. Eine
Endlosschleife kann auch der dümmste Compiler nicht
wegoptimieren.