- UNI-T-Messgeraete    Werbung      
Ergebnis 1 bis 9 von 9

Thema: Variable im Unterprogramm deklarieren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    ja, das geht, du musst sie nur im Funktionsblock der betr. Funktion deklarieren, dann ist sie automatisch lokal.
    Code:
    int i;   // ist global
    
    
    
    void test () {
       int j;  // ist lokal
       //...
    }
    
    
    
    float x; // ist global
    
    
    
    void loop() {
       int i, k;  // hier beide lokal - Vorsicht bei Namensgleichheit wegen Verwechslungsgefahr, auf global i kannst du hier nicht zugreifen!
       float y;   // ebenfalls lokal
       //...
    }
    Geändert von HaWe (22.05.2016 um 17:24 Uhr)

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Zitat Zitat von HaWe Beitrag anzeigen
    ja, das geht, du musst sie nur im Funktionsblock der betr. Funktion deklarieren, dann ist sie automatisch lokal.
    Code:
    int i;   // ist global
    
    
    
    void test () {
       int j;  // ist lokal
       //...
    }
    
    
    
    float x; // ist global
    
    
    
    void loop() {
       int i, k;  // hier beide lokal - Vorsicht bei Namensgleichheit wegen Verwechslungsgefahr, auf global i kannst du hier nicht zugreifen!
       float y;   // ebenfalls lokal
       //...
    }
    Das löst aber doch das Problem nicht. lzahn2_alt soll doch schon bei dem ersten Durchlauf einen Wert haben, damit die Gleichung

    float dleta_lzahn2 = lzahn2 - lzahn2_alt; lösbar ist.

    danach wird erst der neue zum alten Wert, der dann in den folgenden Durchläufen vorhanden ist

    Gruß
    fredyxx

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Code:
    float lzahn2_ber ( float x1, float y1) {
    
      static float lzahn2_alt = 0; // oder anderer Vorbelegungswert
      float lzahn2 = ...
      ...
      lzahn2_alt = lzahn2;
      ...                                                                             
    }

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Ignoriert das Programm denn beim nächsten Aufruf des UPs diese Zeile?

  5. #5
    HaWe
    Gast
    bei static wird nur das erste Mal ein Wert initialisiert, wird er im Verlauf geändert, bleibt immer der aktuellste Wert gespeichert.

    ich hatte deine Frage auch falsch verstanden, weil du im Titel von "deklarieren" sprachst.
    Die Frage ging aber
    1. ums Deklarieren und
    2. ums Initialisieren.
    Den 2. Punkt hatte ich falsch verstanden.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Danke erst mal an euch beide.
    Wenn ich nicht klar komme melde ich mich wieder.

    Gruß
    fredyxx

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Klappt auch bei mir!! Bild

  8. #8
    Unregistriert
    Gast

Ähnliche Themen

  1. NIBOBee - Funktionen deklarieren
    Von pinsel120866 im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 6
    Letzter Beitrag: 10.01.2010, 14:49
  2. Verständnisfrage zu SUB deklarieren
    Von mat-sche im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 13.01.2009, 16:19
  3. Variablen deklarieren für Tiny12
    Von EagleStar im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 18.11.2007, 11:35
  4. Variablen read/write - Debounce nur einmal deklarieren?
    Von ReVenGer im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 27.08.2007, 17:06
  5. Funktionen in bascom deklarieren?
    Von Lunarman im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 25
    Letzter Beitrag: 28.06.2007, 09:14

Berechtigungen

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

    Werbung      Solar Speicher und Akkus Tests