define-Wert abfragen in if
-
bzw. warum ist diese Aussage wahr
if(24 != 24)
Tim
-
diese Aussage ist nicht wahr.
-
wenn ich das so schreibe, wird bei mir die If-Anweisung immer ausgeführt und nicht die else-anweisung...
also ist da irgendwas faul???
und bei
if(testdefine != ((unsigned int) 24))
sollte auch die else-Ausführung bearbeitet werden, oder???
Tim
-
zeig mal lieber deinen ganzen Code
-
supertux schrieb:
zeig mal lieber deinen ganzen Code
das ist der ganze Code.... mehr steht wirklich nicht drinnen...
#define testdefine ((unsigned int) 24) int main(void) { int i=0; if(testdefine != ((unsigned int) 24)) i++; else i=3; while(1); }
d.h. hier macht der Compiler irgendwas falsch - richtig?
Tim
-
und woran kannst du erkennen (ohne printf oder debugger), dass i++ ausgeführt wird?
-
indem ich breakpoints setze
Tim
-
also, bei mir liefert dieser Code
#include <stdio.h> #define testdefine ((unsigned int) 24) int main(void) { int i=0; if(testdefine != ((unsigned int) 24)) i++; else i=3; printf("i = %d\n", i); return 0; }
yanez@pselap08:~> gcc b.c -ob yanez@pselap08:~> ./b i = 3
das ist ja in Ordnung.
-
so würde ich das auch erwarten... naja mal eine mail an die entsprechende firma schicken...
Tim
-
derTim schrieb:
so würde ich das auch erwarten... naja mal eine mail an die entsprechende firma schicken...
Lass das lieber, wenn du auf die Blamage verzichten willst.
Lass dir lieber mal den Wert von testdefine ausgeben.
Welcher Compiler?
-
betman schrieb:
derTim schrieb:
so würde ich das auch erwarten... naja mal eine mail an die entsprechende firma schicken...
Lass das lieber, wenn du auf die Blamage verzichten willst.
Lass dir lieber mal den Wert von testdefine ausgeben.
Welcher Compiler?hab mir grad testdefine ausgeben lassen mittels printf() und es ist 24...
Tim