Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Array mit Hilfe von Macros vom Preprozessor füllenlassen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Krabbel
Gast





BeitragVerfasst am: 05. Jun 2013 20:27   Titel: Array mit Hilfe von Macros vom Preprozessor füllenlassen

Grüss Euch!

Ich habe aktuell eine Liste mit Funktionspointern, deren dahinterstehende Funktionen gemäss der Tabelle nach und nach abgearbeitet werden.
Code:

typedef struct {
   void           (*name)(void);
} calc_function;

const calc_funtion table[] = {
{ calculation_1 },
{ calculation_2 },
.....
};

Dies funktioniert tadellos. Um der modularen Programmierung näher zu kommen, möchte ich versuchen, die Tabelle nicht mehr durch Eintippen ins Array, sondern über eine API zu erzeugen:

ADD_CALC_FUNC( calculation_1 );
ADD_CALC_FUNC( calculation_2 );

oder falls einfacher auch

ADD_CALC_FUNC( calculation_1 , POS1);
ADD_CALC_FUNC( calculation_2 , POS2);

Die Liste soll nicht zur Programmlaufzeit geändert werden können, sondern nur mit Hilfe von Makros beim Comilationsvorgang erzeugt werden (läuft auf einen kleinen uC).

Habt Ihr eine Idee wie man so was tun könnte?

Vielen Dank und Gruess
Krabbel
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 06. Jun 2013 0:54   Titel:

Abgesehen davon, dass das mit dem C-Preprozessor schlicht nicht umsetzbar ist, weil dieser immer nur am Ort eines Makroaufrufes den Text ersetzen kann, würde es auch mit anderem Werkzeug nur eine weitere Ebene von Gewurschtel einfügen, das man schlecht durchschaut. Ich würde es gänzlich lassen, stattdessen nur die Tabelle von Funktionspointern in einem eigenen Sourcefile vereinzeln.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy