define-Wert abfragen in if
-
ja aber wo kommen die 0x200 her???
if(testdefine != ((unsigned int) 24))
testdefine = 0x18
Tim
-
ok jetzt hab ich`s kapiert... die 0x200 waren nur ein Bsp:
im prinzip möchte ich nur wissen, warum die if-Anweisung gültig ist:
#define testdefine ((unsigned int) 24)
if(testdefine != ((unsigned int) 24))
Tim
-
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