Hallo! In einem Programm möchte ich eine variable int16_t x testen, ob sie grösser oder kleiner als null ist if(x>0) funktioniert aber nicht, wenn ich eine zeile oberhalb der if()-Anweisung x=-1; setze, dann führt er den Code innerhalb der if-dings trotzdem aus. An was könnte das liegen? Ich verwende WinAVR, eine halbwegs aktuelle Version. Wer kann mir einen Tipp geben?
Da machst du halt was verkehrt. Das Programm hier als Anhang, genauso, wie es nicht funktioniert, wäre schon hilfreich. Sonst kann das doch keiner beantworten. Oliver
Hallo, dein "int16_t" ist schon als signed definiert oder? Sonst macht eine Abfrage größer 0 keinen Sinn. Gruß, Christian
Hallo! Also am Programm wird es wohl nicht liegen, habe ein ganz einfaches nur zum test gemacht, indem vor der If-Verzweigung ein x=-1; stand, also an dem wirds nicht liegen. @_CH_: Ich denke, dass int16_t schon vorzeichenbehaftet ist, im Gegensatz zu uint16_t... Oder liege ich da falsch?
Poste den Code. Es liegt definitiv am Programm. Sollte x>y nicht funktionieren, wäre die Welt so wie ich sie kenne nicht machbar ;-)
> Also am Programm wird es wohl nicht liegen,
Das glauben sie immer.
Es liegt praktisch immer am Programm. Nicht böse sein,
aber dass du einen Compilerfehler findest ist mehr
als unwahrscheinlich. Es wäre zwar theoretisch denkbar
aber praktisch friert wohl eher die Hölle ein :-)
Mit Code wäre die Lösung gestern um 21:21 Uhr bekannt gewesen. Ohne Code ist sie heute um 10:43 Uhr noch nicht bekannt. Chaqun à son goût
Hallo! Wenn es nach meinem goût geht können wir gerne bei Deutsch bleiben. Ich wollte eigentlich nur eure Glaskugeln testen nud sie scheinen zu funktionieren. Ich habe vor dem eigentlichen Test auf grösser 0 die Variable in eine andere vom Typ int16_t gepackt. Deshalb --> logischerweise nicht richtig. Darauf hatte ich nicht geachtet, ich hätte eine Warnung erwartet.... Also, passt auf eure Glaskugeln auf, sie funktionieren wirklich. Danke für die Hilfe:)
> ...ich hätte eine Warnung erwartet....
Das ist der Sinn des Cast. Die Warnung zu unterdrücken wenn man Äpfel zu
Birnen legen will.
Aber wollte der Poster größer / kleiner als 0 haben?
> 0 ist doch größer als Null^^
!= 0 wäre dann größer / kleiner Null^^
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.