Go Down

Topic: Serial.println, String und der Fehler (Read 867 times) previous topic - next topic

michael_x

Quote
Oder etwa nur ein Pointer auf die variable im Speicher?

Natürlich ist ein char* ein Pointer.
Ob du diesen Pointer auf eine globale Variable als Rückgabewert lieferst oder nicht, ist eigentlich Geschmackssache.

Ich finde (Motto: "Vermeide globale Variablen") es schön, wenn man einer Funktion ansieht, was sie an Daten benutzt und was sie verändert, mehr oder weniger.
ReadID sollte also eigentlich jetzt void SetIDFromEPROM(byte index); heissen...


Ein String Objekt wird übrigens bei c++, java oder c# auch nur als Pointer bzw. Referenz übergeben, aber es wurde dynamisch auf dem heap erzeugt, öfters umkopiert als man glaubt, und alle nicht mehr benötigten Kopien warten auf die Müllabfuhr. Arduino ist aus Italien, und da ist die Müllabfuhr ein Problem. ;)

(SCNR,  Hoffentlich liest Uwe nicht mit, oder stellt fest dass 1. er aus Südtirol ist, 2. Arduino aus Turin, 3. diese blöden Klischees sich, wenn überhaupt, nur auf Neapel und weiter südlich beziehen) 

Auf jeden Fall sind die 2048 Byte RAM eines Ardiuno Uno für solchen Schnickschnack zu schade.
Zumal eine Fehlerbehandlung auch nicht wirklich stattfindet.  (Kostet erstens Programmcode-Platz und zweitens, was soll ein µC auch groß machen ... )
Schön, dass einige c++ Features trotzdem gehen, z.B. dass print() so schön vererbt wird.

Go Up