Vergleich zeigt bei gleichen Werten ungleich.
Von: Martin Freiberg (lyki_@web.de) [Profil]
Datum: 23.02.2009 00:34
Message-ID: <gnsn6p$dht$01$1@news.t-online.com>
Newsgroup: de.comp.os.unix.programming
Datum: 23.02.2009 00:34
Message-ID: <gnsn6p$dht$01$1@news.t-online.com>
Newsgroup: de.comp.os.unix.programming
Hallo,
Ich habe hier ein kleines Problem. Hier nur die relevanten Zeilen.
Im eigentlichen Programm wird "merk" errechnet.
Fall wichtig, es ist ein Kernelmodul an dem ich werkle. :)
void handshake (char flag, char signal) {
unsigned char merk;
// diverse Programmzeilen ...
merk = 0x80; // Inhalt wird normal errechnet
if ((merk & flag) == signal) {
// tue hier wenn true
} else {
// tue hier wenn false
printk (KERN_INFO ":Handshake And=%X Sig=%X \n", merk & flag, signal);
}
}
// hier ein Programmteil ....
handshake (0x80,0x80);
// weitere Programmzeilen ....
Warum ergibt der Vergleich in der Funktion immer false?
Es wird immer der Programteil nach dem else ausgeführt.
Im Log steht:
.... :Handshake And=0x80 Sig=0x80
Sollte so doch nicht vorkommen, oder?
Gruß
Martin
[ Auf dieses Posting antworten ]Antworten
- Alexander alba Bartolich (23.02.2009 00:58)
- Freiberg Martin (26.02.2009 20:24)
- Alexander alba Bartolich (27.02.2009 07:46)
- Roland Schulte-Osthoff (27.02.2009 09:05)
- Alexander alba Bartolich (27.02.2009 11:26)
- Alexander alba Bartolich (27.02.2009 12:02)
- Freiberg Martin (02.03.2009 18:29)
- Markus Wichmann (02.03.2009 22:22)
- Der TESTER (03.03.2009 16:37)
- Juergen Ilse (23.02.2009 11:46)
