Hallo Leute,
ich bin gerade dabei eine Applikation zu programmieren, und stehe nun
vor dem Problem, welchen Datentyp ich zum Ablegen der Daten am besten
verwenden soll. Konkret geht es um folgendes:
Ich habe eine Funktion (ich nenn sie mal getData), die mir einen Pointer
auf ein integer Array liefert, wo die Daten abgelegt sind. In der
Funktion getData parse ich nun die Daten, und lege sie in den einzelnen
Datenelementen einer Struktur (ich nenn sie mal data_t) ab. Die Daten
der Struktur werden nun in verschiedenen anderen Funktionen verändert
und anschließend der Funktion processData übergeben. Das Problem ist
nun, dass processData wiederrum nur einen Pointer auf ein integer Array
akzeptiert. Die Frage ist nun, wie mache ich das klug? Ich könnte
natürlich hergehen, und die einzelnen Elemente der Struktur wieder zu
einem String zusammenstöpseln, bevor ich die Funktion processData
aufrufe, doch das wäre ja ziemlich ineffizient und würde nur unnötig
Speicher brauchen...
Gibt es vielleicht einen anderen Datentyp, den ich statt einer Struktur
verwenden könnte und der einen ähnlichen "Komfort" wie eine Struktur
bietet? Wie würdet ihr das lösen?
P.S: die Funktionen getData und processData kann ich leider nicht
verändern...
1 | data_t d;
|
2 |
|
3 | void getData(uint8_t *data){
|
4 | //parse Daten und lege sie in den Variablen der Struktur ab
|
5 | d.wert1 = ....;
|
6 | d.wert2 = ....;
|
7 | d.wert3 = ....;
|
8 | }
|
9 |
|
10 | void processData(uint8_t *data){
|
11 | //do something
|
12 | }
|