Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 19. Dez 2018 16:36

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 05. Jun 2013 20:27 
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 06. Jun 2013 0:54 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de