pointer auf funktion in c

Von: , Frage gestellt am Mi, 29. Sep 1999

Weiss jemand, wie ich in c einen pointer auf eine funktion machen kann bzw. ein "funktionsname" der auf eine funktion zeigt, welchen ich unter laufzeit ändern kann?

4 Antworten zu dieser Frage

  1. Antwort von nach 10 Stunden hilfreich
    Re: pointer auf funktion in c

    Hi Fox !

    Soweit ich weiß kann man auf eine Funktion selbst keine Pointer legen. Aber wenn du verschiedene Dinge in einer funktion erledigen möchtest, kannst du einen Parameter übergeben, über den du entscheiden kannst was zu machen ist.

    Ciao
    Mario

    • Antwort von nach 12 Stunden hilfreich
      Re^2: pointer auf funktion in c

      Hi Fox !

      Soweit ich weiß kann man auf eine
      Funktion selbst keine Pointer legen. Aber
      wenn du verschiedene Dinge in einer
      funktion erledigen möchtest, kannst du
      einen Parameter übergeben, über den du
      entscheiden kannst was zu machen ist.
      Das ist mir leider etwas zu langsam.

  2. Antwort von nach 10 Stunden hilfreich
    Re: pointer auf funktion in c

    Hallo CFox,
    zum Beispiel so:

    void (*dowhatiwant)(void); /* Definition des Funktionspointers dowhatiwant */

    void dofirst(void)
    {
    /* Eine der alternativen Funktionen */
    }

    void dosecond(void)
    {
    /* Die zweite Funktionen */
    }

    void dothird(void)
    {
    /* Die dritte Funktionen */
    }

    void main(void)
    {
    int decision;

    switch(decision)
    {
    default:
    case 0:
    /* Zuweisung an den Pointer */
    dowhatiwant = dofirst;
    break;
    case 1:
    /* Zuweisung an den Pointer */
    dowhatiwant = dosecond;
    break;
    case 2:
    /* Zuweisung an den Pointer */
    dowhatiwant = dothird;
    break;
    }
    /* Aufruf der zugewiesenen Funktion */
    dowhatiwant();
    }


    Tschüß,

    Michael

    • Antwort von nach einem Tag hilfreich
      Re^2: pointer auf funktion in c

      Hi Michael !

      Wow , super das wusste ich nicht. Wie man sieht lernt man nie aus ... :-)

      Ciao
      Mario

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!