Kennt jemand diese Schreibweise?



  • Hi,
    Kann mir jemand sagen, was das für eine Schreibweise ist?

    void (*main_init_func)() = main_init_curses;

    ist das ein Zeiger auf eine Funktion?? Warum setzt man die in Klammern?

    Grüße Tobias



  • Stimmt genau, das ist ein Zeiger auf eine Funktion.

    PS: Ohne die Klammern wäre es der Aufruf einer Funktion. (Ich gehe davon aus, du meinst die Klammern um den Namen)



  • Die Klammern setzt man, weil der ()-Operator stärker bindet als *.

    void* f();   // f ist eine Funktion, die einen Zeiger auf void zurückgibt
    
    void (*f) (); // *f ist eine void-Funktion, d.h. indirekt, dass f ein Funktionspointer ist
    

Anmelden zum Antworten