[linux-l] Blockklammerung (was: do{ . } while (0))

Oliver Bandel oliver at first.in-berlin.de
Fr Nov 25 18:51:53 CET 2005


On Fri, Nov 25, 2005 at 12:15:38PM +0100, Frank Reker wrote:
> Am Fri 25. Nov 2005 01:47 +0000 schrieb Oliver Bandel:
> 
> >On Thu, Nov 24, 2005 at 10:28:03PM +0100, Axel Wei wrote:
> >[... 
> >> Wo ich dagegen regelmäßig Kopfschütteln bekomme, ist die Umkehrung bei 
> >> Vergleichen, wie in diesem ANTI-Beispiel:
> >> 
> >> 	if (0 != variable)...
> >> 
> >[...]
> >
> >
> >FULL ACK!!!
> >
> >Das finde ich auch absolut grauselig! :(
> >
> >Oaaahh kriege hier gleich Schüttelfrost (ganzkörperlich, nicht
> >nur auf den Kopf bezogen), wenn ich sowas sehen muß...
> 
> tja - ich benutze es zwar auch nicht, aber es macht durchaus sinn.
> gerade wer nicht so firm ist in c, oder haeufig die sprachen wechseln
> muss, der schreibt schon mal = anstatt ==
> und if (var=0) ist auch gueltiger c code, nur mit einer anderen 
> semantik (fehler die spaeter schwer zu finden sind). der gcc (mit -Wall)
> weist einen zum glueck noch darauf hin, aber andere compiler nicht.
> hingegen: if (0=var) wuerde definitiv zum compilerfehler fuehren.


Aha, ok, das ist ein Argument.
Hatte immer gedacht, es soll um Lesbarkeit gehen bei dieser
Schreibweise. Daß man hier den Compiler zum Meckern veranlasst
ist ja ne eigentlich sinnvolle Idee...

... das mit dem "=" und "==" ist keine wirklich gute Erfindung in C. :(




Mehr Informationen über die Mailingliste linux-l