(*function)(void) = ...



  • Hallo,

    Wie man dem in der Fachsprache sagt, weiss ich nicht, aber es sieht unheimlich gut aus ;-).

    (*function)(void) = ...
    

    (Anm. dynamische Funktionen? *hehe*).

    Ich möchte gerne eine Funktion machen, mit der man diese Funktionen generieren/erstellen kann. Aber ich weiss nicht genau wie das mit den Parametern aussieht.

    Ich versuche ein Tool zu machen wo man quasi Module laden kann (funktionen etc.) und da kann es verschiedene Parameter haben.

    Wie kann ich das realisieren?

    Z.b. einmal ist es: function(int bla1, int bla2, int bla3), ein andermal wiederum function(char bla[], int blabla) ...

    Danke 😉

    gruss quarky

    PS: Sorry für meine Kackbeschreibung, aber ich weiss selber nicht wie ichs vernünftig sagen soll...



  • Hallo quarky,

    könnte es vielleicht dass sein, was du suchst?

    [cpp]
    int* func(int* x)
    {
    	printf("%d", *(x));
    	return x;
    }
    
    int main() 
    { 
    	void* (*funcp)(void*);
    	funcp = (void*(*)(void*))func;
    	int x = 0;
    	printf("%d", *((int*)funcp(&x)));
        return 0; 
    } 
    [/cpp]
    

    Zum Arbeiten mit Funktionspointer ein paar links:
    http://www.mrunix.de/forums/showthread.php?t=34850&goto=nextnewest
    http://www.physik.uni-regensburg.de/studium/edverg/ckurs/script/node46.html



  • quarky schrieb:

    Z.b. einmal ist es: function(int bla1, int bla2, int bla3), ein andermal wiederum function(char bla[], int blabla) ...

    wenn du funktionen mit verschiedenen parametertypen machen willst, dann geht das in c nicht auf direkem wege. das mußt du dann indirekt machen:

    #define ARGTYP_INT  1
    #define ARGTYP_STR  2
    
    struct argument
    {
      int typ;
      union
      {
        int   i;
        char *str;
      } u;
    };
    
    void func1 (struct argument *args, int argn);
    void func2 (struct argument *args, int argn);
    

    außerdem muß (oder besser solltest) du in den funktionen func1(), func2() etc die argumentenliste daraufhin prüfen, ob die anzahl und der typ der parameter stimmt.


Anmelden zum Antworten