Forum: Compiler & IDEs Problem mit if ()


von Denis T. (denist)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

wenn er anzeigt das es Null ist, dann ist es eventuell ein object mit 
überladenen != Operator. Dann kann auch NULL != 0 sein.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>> Debugging AVR Studio
> überladenen != Operator
C++ ?

> dass result gleich Null ist
Welchen Typ hat result, ist das ein float?

von Denis T. (denist)


Lesenswert?

Lothar Miller wrote:
>> dass result gleich Null ist
> Welchen Typ hat result, ist das ein float?
unsigned char

von Nicolas S. (Gast)


Lesenswert?

Ist result == 0 oder result == '0'?

von Denis T. (denist)


Lesenswert?

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.

von ... .. (docean) Benutzerseite


Lesenswert?

Was passiert bei
1
if(result)
2
{
3
  //mach was
4
}

?

von Denis T. (denist)


Lesenswert?

... ... wrote:
> Was passiert bei
>
>
1
> if(result)
2
> {
3
>   //mach was
4
> }
5
>
>
> ?

Das gleiche.

von Ahem (Gast)


Lesenswert?

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.

von Ahem (Gast)


Lesenswert?

Ich tippe auf volatile.

von Peter (Gast)


Lesenswert?

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
}

von Peter (Gast)


Lesenswert?

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
}

von Denis T. (denist)


Lesenswert?

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.

von Philipp B. (philipp_burch)


Lesenswert?

Das Disassembly könntest du auch mal ansehn/posten. Vielleicht verwendet 
der Simulator/Prozessor auch ein veraltetes Kompilat.

von Di P. (drpepper) Benutzerseite


Lesenswert?

vielleicht hilfts, wenn du zusätzlich zum if-teil auch noch jede andere 
verwendung von "result" postst inklusive deklaration und 
initialisierung...

von Denis T. (denist)


Lesenswert?

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
Noch kein Account? Hier anmelden.