- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 14

Thema: ein Int-Array einer Funktion

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Code:
    void mess(int *arr) {
    arr[0]  = analogRead(IR_RFL_V) ;
    arr[1]  = analogRead(IR_RFL_L) ;
    arr[2]  = analogRead(IR_RFL_R) ;
    }
    
    void loop()
    {....
    mess(MW);
    ....
    }
    Sollte in deinem Fall die beste Lösung sein. Globale Variablen sollte man wenn möglich vermeiden.
    Funktion ist natürlich nicht sicher, da keine Überprüfung des Arrays stattfindet.

    mfg

  2. #2
    shedepe
    Gast
    Die Ideale Variante währe (so wird das auch von den C Standard Funktionen gemacht):

    Code:
    int * mess(int *arr, int length)
    {
        //Array befüllen und dabei length beachten
        return arr;
    }

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Wir programmieren hier für einem Arduino. Da sind globale Variablen einfach praktisch.
    Wer schon mal größere objektoorientierte Programme geschrieben hat, weiß das das Gefahren birgt.
    Je größer ein Arduino Sketch, desto unübersichtlicher. Die Probleme fangen an, wenn man nicht mehr weiß, wie groß z.B. ein Variablenfeld ist und über die Feldgrenzen hinweg schreibt oder ließt. Oder wenn sich ein zweiter Programmierer über den Code hermacht.

    Aber für einfachere Sketches finde ich es durchaus empfehlenswert mit globalen Variablen zu arbeiten.
    Wenn man seinen Code anständig kommentiert, und sprechende Namen vergibt, ist es für mich ok.
    Es ist halt auch die schnellste Variante, da die Variablen global erhalten bleiben und keine Parameter übergeben werden.

    Da hat halt jeder hat seinen eigenen Stil.

  4. #4
    shedepe
    Gast
    Globale Variablen würde ich nicht als eigenen Stil sondern als sehr schlechte Angewohnheit bezeichen, besonders wenn die Alternative kaum Mehraufwand bedeutet.
    Also Regel würde ich mal sagen: so lokal wie möglich, so global wie nötig. Also wenn ich eine Variable nur in einer Funktion brauche, dann deklare ich die auch nur dort, usw.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Zitat Zitat von shedepe Beitrag anzeigen
    Globale Variablen würde ich nicht als eigenen Stil sondern als sehr schlechte Angewohnheit bezeichen, besonders wenn die Alternative kaum Mehraufwand bedeutet.
    Also Regel würde ich mal sagen: so lokal wie möglich, so global wie nötig. Also wenn ich eine Variable nur in einer Funktion brauche, dann deklare ich die auch nur dort, usw.
    ^this

    mfg

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Ich sehe einen Arduino Sketch so:
    Code:
    void loop()
    {
    ...
    }
    ist etwa das gleiche wie:
    Code:
    while(1)
    {
    ...
    }
    Wenn nun Variablen in der Loop- (oder While-) Schleife gebraucht werden, deklariere ich sie außerhalb. Innerhalb würde bedeuten, dass sie in jedem neuen Durchlauf weggeschmissen und neu erstellt werden müssen (Stack). In diesem Fall entscheide ich mich also ganz bewußt für diese Vorgehensweise, nicht aus schlechter Gewohnheit.

    Im Allgemeinen stimme ich aber shedepe in allen Punkten zu.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Klicke auf die Grafik für eine größere Ansicht

Name:	46138098.jpg
Hits:	4
Größe:	143,8 KB
ID:	27549

    mfg

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Touché!

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 03.06.2013, 22:20
  2. Array an Funktion übergeben
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 02.05.2013, 21:23
  3. [erledigt]Array aus Funktion zurückgeben
    Von guenter1604 im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 24.11.2012, 10:46
  4. int Array in einen String wandeln
    Von Hotte Meyer im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 28.12.2008, 11:45
  5. Funktion als Rückgabewert einer Funktion?
    Von Jaecko im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 08.09.2008, 10:25

Berechtigungen

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

LiFePO4 Speicher Test