Re: Fehler bei Vergleichsoperation? Kategorie: Programmierung C (von Markus V - 10.03.2012 16:14) | ||
Als Antwort auf Re: Fehler bei Vergleichsoperation? von PeterS - 10.03.2012 13:31 | ||
| ||
> > Hallo, ich bin neu im Forum, habe folgendes Problem entdeckt. > > Ich lese aus EEProm eine word Variable a ein (65535), da noch nicht in EEProm geschrieben wurde. > > Bei Abfrage if (a > 5000) kommt als Ergebnis 0 heraus und die Abfrage wird übergangen. > > Ich verstehe nicht warum, oder habe ich einen Denkfehler.Kann mir jemand weiterhelfen? > > > > Grü�e Markus > > Hallo Markus, > > bitte schreib "5000U" um dem Compiler zu signalisieren, das die 5000 ein "word" > sein soll, und kein "int". Bei einem binären Ausdruck (z.B. a>b ), wird wenn einer > der Operatoren nicht vom gleichen Typ ist wieder der andere, auf den höheren Typ > konvertiert. Ist also ein Operator "word" und der andere "int" wird das "word" in > ein "int" konvertiert. Ein int von 65535 ist aber -1, und daher kleiner als 5000. > Ist ein wenig kompliziert, aber das sind die Regeln wie in C Typen konvertiert werden. > > Gruss Peter Hallo Peter, danke für die Antwort, habe mir so etwas ähnliches gedacht, wusste nur nicht warum und wie ich es umgehen kann. Danke noch mal. Gruss Markus | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum