- Labornetzteil AliExpress         
Ergebnis 1 bis 3 von 3

Thema: Fehlermeldung >>> was not declared in this scope

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    147

    Fehlermeldung >>> was not declared in this scope

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen.

    Hier habe ich eine Fehlermeldung die ich nicht beseitigen kann.
    Fehler: Compilation error: 'DisplFeld3' was not declared in this scope;

    Code:
    ...
     if(Ishunt < 1.0)  {    //wenn Wert < 1,0A ist, [mA]-Anzeige
        String DisplFeld3 = "3 " + String(IshuntMA, 1) + "mA";
        }
        else {
          String DisplFeld3 = "3 " + String(Ishunt, 1) + "A"; 
        }
    
    String DisplFeld4 = "4 von Pin " + String(VmwMax, 0);
    ...
    display.setCursor(1,46);
    display.print(DisplFeld3);
    
    display.setCursor(1,62);
    display.print(DisplFeld4); 
    ...
    Die Fehlerursache ist, dass die if-else -Schleife nicht durchlaufen wird! Aber warum nur?

    - - - Aktualisiert - - -

    Füge ich folgende Testzeile hinzu, kommt keine Fehlermeldung und wird nur "3 test" angezeigt.
    Code:
    ...
      String DisplFeld3 = "3 test";  //TESTzeile
    
      if(Ishunt < 1.0)  {
        String DisplFeld3 = "3 " + String(IshuntMA, 1) + "mA"
        }
        else {
        String DisplFeld3 = "3 " + String(Ishunt, 1) + "A";
      }
    ...
    Geändert von frabe (07.11.2024 um 15:05 Uhr)
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Andre_S
    Registriert seit
    26.06.2005
    Beiträge
    360
    Ist zwar nicht meine Sprache, hoffe aber die Regeln gelten hier auch:

    zu 1.
    Die Schleife wird schon durchlaufen, du deklarierst aber die Variable innerhalb des IF/ELSE Blockes und deshalb ist Sie auch nur dort sichtbar.
    Besser:
    Code:
    String DisplFeld3;  // Deklaration der Variable außerhalb des if-else-Blocks  
    if (Ishunt < 1.0) {  // wenn Wert < 1,0A ist, [mA]-Anzeige     
       DisplFeld3 = "3 " + String(IshuntMA, 1) + "mA";
    ...
    Dadurch ist DisplFeld3 auch außerhalb des Blocks verfügbar und die Fehlermeldung sollte verschwinden.


    zu 2.
    Du erzeugst innerhalb des IF/ELSE Blockes eine neue lokale Variable, welche nur dort lokal verfügbar ist, Du greifst nicht auf die zuerst Deklarierte zu.
    Lasse bitte die Typendeklaration "STRING" weg
    (rot markiert weglassen)
    Code:
    String DisplFeld3 = "3 test";  // TESTzeile  
    if (Ishunt < 1.0) {     
        String DisplFeld3 = "3 " + String(IshuntMA, 1) + "mA";  // Kein "String" davor
    ...

    Gruß André

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    147
    Zitat Zitat von Andre_S Beitrag anzeigen
    Ist zwar nicht meine Sprache, hoffe aber die Regeln gelten hier auch:
    Hi Andre.
    Dein Wissen hat völlig ausgereicht - DANKE - das wars! Alles läuft fehlerfrei.
    Über Deklarationen und deren Gültigkeitsbereiche solpere ich dauernd...
    Alles Schöne ...fRANK
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

Ähnliche Themen

  1. Fehlermeldung in der IDE ?
    Von YetiFlachmann im Forum Arduino -Plattform
    Antworten: 32
    Letzter Beitrag: 14.01.2020, 18:05
  2. Fehlermeldung bei Dev-C++
    Von Zylbath im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 12.10.2009, 16:21
  3. Antworten: 3
    Letzter Beitrag: 15.02.2007, 18:41
  4. Fehlermeldung
    Von Proworx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 12.04.2006, 09:49
  5. Fehlermeldung!?!?!?
    Von ricoderrichter im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.08.2005, 18:57

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests