Freitag... Wahrscheinlich bin ich schon müde, aber... Ich habe ein Problem mit if(). if (result != 0) { // bearbeiten } Beim Debugging AVR Studio zeigt, dass result gleich Null ist, aber das Programm geht trotzdem in Bearbeitungsroutine.
wenn er anzeigt das es Null ist, dann ist es eventuell ein object mit überladenen != Operator. Dann kann auch NULL != 0 sein.
>> Debugging AVR Studio > überladenen != Operator C++ ? > dass result gleich Null ist Welchen Typ hat result, ist das ein float?
Lothar Miller wrote: >> dass result gleich Null ist > Welchen Typ hat result, ist das ein float? unsigned char
Nicolas S. wrote:
> Ist result == 0 oder result == '0'?
Exakter es ist uint8:
typedef unsigned char uint8;
Ist 0. Das kann ich auch im RAM sehen.
... ... wrote: > Was passiert bei > >
1 | > if(result) |
2 | > { |
3 | > //mach was |
4 | > } |
5 | >
|
> > ? Das gleiche.
Was Du da schreibst, ist unter den Bedingungen, die anderen Antworter schon abgefragt haben, einfach unmöglich. Am besten poste mal ein minimales Programm das kompilierbar ist und genau dieses Verhalten zeigt.
Schmeisse mal Deinen Code-Abschnitt per Copy+Pase hier ins Forum, nicht mit abtippen! Hast Du vieleicht einen Semiklon hinter der if()-Abfrage, z.B:
1 | if (result != 0); |
2 | {
|
3 | // bearbeiten
|
4 | }
|
Oder ist result ein pointer?
1 | void MyFunc(u08 *result) |
2 | {
|
3 | if (result != 0) // Richtig wäre if (*result != 0) |
4 | {
|
5 | // bearbeiten
|
6 | }
|
7 | }
|
Danke allen für die Hilfe, leider kann ich heute nicht weitermachen. Am Monntag werde ich dieses Programm am PC laufen lassen, am virtuellen Umgebung, um zu prüfen, ob es auch so funktioniert. Dann werde ich mehr wissen, also bis Montag und schönes Wochenende.
Das Disassembly könntest du auch mal ansehn/posten. Vielleicht verwendet der Simulator/Prozessor auch ein veraltetes Kompilat.
vielleicht hilfts, wenn du zusätzlich zum if-teil auch noch jede andere verwendung von "result" postst inklusive deklaration und initialisierung...
Hallo! Ich habe gute Nachrichten: heute nach dem Neustart, "Clean" und "Rebuild All" geht es weiter, obwohl das habe ich auch Freitag probiert.
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.