Mit Kompusiten (also structs und unions) bze Objekten zu arbeiten, ist der einzige Weg, überhaupt sinnvoll programmieren zu können. Wenn z.B. eine Struktuv verschickt werden soll, will man nicht jede Variable einzeln angeben.
Soll z.B ein foo_t verschickt werden -- wie auch immer -- dann interessiert der interne Aufbau von foo_t überhaupt nicht. Das einzige was interessiert ist, wieviele Bytes es hat.
Wenn es also eine Sendefunktion gibt
Code:
send_n_bytes (const uint8_t * anfangs_addr, const size_t anzahl_bytes)
dann verschickt man es einfach mit
Code:
send_n_bytes ((const uint8_t *) &foo, sizeof (foo_t));
Ausserdem kann man auf ein foo zugreifen indem man eine Adresse übergibt, und nicht, indem man für jedes Element von foo was übergeben muss. Ausserdem kann man nachträglich die Struktur erweitern, ohne daß sich Interfaces ändern (also die Prototypen von Funktionen, etc).
Lesezeichen