Frage zur Analyse eines Programms
-
bezüglich malloc schrieb:
Hi,
Wer sagt das malloc nicht mehr gecastet werden darf?
Das ist doch völliger Schwachsinn, wer's machen möchte soll's machen.von dürfen hat keiner was gesagt, aber schau mal:
char *p = (char)malloc(...);
da hat einer zu schnell getippt und beim cast das '*' weggelassen...
-
switch (skill) { case ahnungslos: if (foo == true) bar = bar + 1; break; case anfaenger: if (foo != false) bar++; break case pragmatiker: bar += !!foo; break; }
...gedanken...
-
c.rackwitz schrieb:
...gedanken...
Da hat das !! ja auch einen Effekt
-
ich seh aber so selten ein !!... entweder ists verboten wie das goto oder leute wissen nicht, dass es geht.
-
c.rackwitz schrieb:
ich seh aber so selten ein !!... entweder ists verboten wie das goto oder leute wissen nicht, dass es geht.
viele nehmen bestimmt lieber 'a&1' statt '!!a'.
auch wenn '!!' was bringt, aber doof sieht's ja aus
-
vista schrieb:
c.rackwitz schrieb:
ich seh aber so selten ein !!... entweder ists verboten wie das goto oder leute wissen nicht, dass es geht.
viele nehmen bestimmt lieber 'a&1' statt '!!a'.
auch wenn '!!' was bringt, aber doof sieht's ja aus!!a und a&1 sind aber nicht äquivalent.
-
false != 1&((2&1 == !!2) != true)
*wuerg*
-
TactX schrieb:
!!a und a&1 sind aber nicht äquivalent.
das nicht, aber es kommt das selbe raus, 1 oder 0
edit: ach ja, false ist ja 'ungleich 0'.
dann ist '!!a' äquivalent zu 'a=(a!=0)'
vielleicht sollte ich mal 10 sekunden nachdenken, bevor ich poste
-
vista schrieb:
bezüglich malloc schrieb:
Hi,
Wer sagt das malloc nicht mehr gecastet werden darf?
Das ist doch völliger Schwachsinn, wer's machen möchte soll's machen.von dürfen hat keiner was gesagt, aber schau mal:
char *p = (char)malloc(...);
da hat einer zu schnell getippt und beim cast das '*' weggelassen...
Deswegen hat man auch darauf zu achten was man macht,
Du sprichst ja auch nicht Deutsch und Englisch zusammen :p.
-
falsches argument.
ohne den cast waere der fehler garnicht erst moeglich gewesen.
-
es ist ja gerade das gute an void*, dass man sie nicht casten muss.
andernfalls hätten die überhaupt keine existenzberechtigung.
-
[quote="vista"]
TactX schrieb:
!!a und a&1 sind aber nicht äquivalent.
das nicht, aber es kommt das selbe raus, 1 oder 0
:)[quote]Wenn du es aus der Sicht siehst, sind alle boole'schen Operatoren äquivalent (die geben alle 1 oder 0 aus)
-
[quote="CStoll"][quote="vista"]
TactX schrieb:
!!a und a&1 sind aber nicht äquivalent.
das nicht, aber es kommt das selbe raus, 1 oder 0
Wenn du es aus der Sicht siehst, sind alle boole'schen Operatoren äquivalent (die geben alle 1 oder 0 aus)
naja, ich bin irrtümlicherweise davon ausgegangen, dass false==0 und true==1 sind.
aber das zweite davon stimmt ja nicht...