Hallo,
ich habe ein Verständnisproblem mit Funktionszeigern evtl. hackt es auch
wo anders (bin in C nicht wirklich Sattelfest). Da ich modular
programmieren und bereits programmierte Teile wiederverwenden möchte,
hab ich mir folgendes überlegt: Es wäre doch toll, wenn ich einen
Datentyp für eine Bsp. UART erstelle, der die zugehörigen Variablen und
Funktionen mitbringt (ähnlich wie Klassen in der objektorientierten
Programmierung).
Beispiel:
1 | typedef void (*VoidFnct)( char [] );
|
2 |
|
3 | struct
|
4 | {
|
5 | char buffer[10] = " ";
|
6 | VoidFnct send = uart_send;
|
7 | }uart;
|
8 |
|
9 | void uart_send(char [] to_send)
|
10 | {
|
11 | // TODO senderoutine
|
12 | }
|
13 |
|
14 | int main ()
|
15 | {
|
16 | uart.send("hallo");
|
17 | }
|
Wie ihr seht möchte ich, dass über die Struktur auf die Funktionen
zugegriffen wird. Wichtig ist auch, dass nicht erst der Funktionspointer
initialisiert werden muss, nachdem eine Instanz der Struktur angelegt
wurde. Mein Problem ist, wie mach ich das dem Compiler klar?
Ich hoffe ihr versteht was ich meine, sonst muss ich versuchen mein
Problem anders zu schildern.
Grüzi, Willi