Forum: Mikrocontroller und Digitale Elektronik Datentypen und Arrays


von Tom (Gast)


Lesenswert?

@all,

ich bins mal wieder.
Hätte mal eine Frage zu Datentypen und Arrays.
Ich ermittle alle 2 min 3 Messwerte diese liegen im Bereich von 0-580
also Integer (unsigned int).
Für die Zuordnung würde mir aber ein char Array genügen.
Daher habe ich die Frage funktioniert das überhaupt zwei Daten Typen
bei einem Array zu verwenden.
Die Speicherung sollte so aussehen.

Kennung (char) | Wert1 (int) | Wert2 (int) | Wert3 (int)
...
...
...

Danke TOM

von johnny.m (Gast)


Lesenswert?

Ein Array kann immer nur einen Datenty haben (Deklaration z.B. unsigned
int array[]). Was Du brauchst ist eine struct-Variable. Da kannste
jeden Mist reinschreiben.

von Tom (Gast)


Lesenswert?

@johnny.m,

was ist eine Struct-Variable?

Soyys Neuling

TOM

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ist eine Struktur:

  struct wertpaket
  {
    char kennung;
    int werte[3];
  };


Und davon kann wiederum ein Array angelegt werden:


  struct wertpaket wertpakete[10];


Und auf Strukturelemente wird dann so zugegriffen:

  wertpakete[0].kennung = 'A';

  wertpakete[3].werte[2] = 10;

von Tom (Gast)


Lesenswert?

@Rufus,

kann ich das dann so verstehen, dass ich mit struct wertpaket{...}
quasi ein eindimentionales Array erzeuge und mit struct wertpaket
Wertpakete[10] dann ein zweidimentionales array erzeuge.
Also

9  -->  char    int    int    int
8  -->  char    int    int    int
.
.
.
0  -->  char    int    int    int

Gruß

TOM

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein. Nicht wirklich.

struct wertpaket enthält zwar ein Array, ist aber selbst keines.

Das Strukturelement "kennung" wird außerhalb des enthaltenen Array
"werte" gespeichert.

Eine Struktur ist eine Datentypdefinition (das Pascal-Äquivalent heißt
"record"); Du solltest Dir dazu mal ein C-Buch durchlesen.

Empfehlung:
Kernighan & Ritchie, Programmieren in C, 2. Auflage, Hanser Verlag

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.