return function pointer [solved]



  • hallo,

    kann mir jmd. sagen, wie ich einen function pointer aus einer function returnen kann?

    also zB (funktioniert leider nicht)

    void (*myFunc)(void) myFunctionGetter() 
     { 
         return &compatibleFunction; 
     }
    

    danke im voraus!



  • ok, habs selber rausgefunden:
    void *getMyFunction()
    funktioniert



  • hephaistos6 schrieb:

    ok, habs selber rausgefunden:
    void *getMyFunction()
    funktioniert

    Kann ich mir nicht vorstellen.

    void(*myFunctionGetter())(void)
    


  • typedef (*myFunc)(void);
    
    myFunc myFunctionGetter()
    {
        return compatibleFunction;
    }
    

    das brezel vor compatibleFunction kannst du auch weglassen.

    theoretisch müßte auch

    void (*)(void) myFunctionGetter()
    {
        return compatibleFunction;
    }
    

    funktionieren (glaub ich zumindest). geht aber bei meinem vc++6 nicht.



  • hallo,

    so hab ich das gemeint:

    void *myFunctionGetter()
    {
        return &compatibleFunction;
    }
    


  • Jo, und das ist ja eben falsch. 'void*' ist zwar ein Typ, der alle Zeiger auf Datentypen aufnehmen kann, aber nicht unbedingt Funktionsadressen.



  • aha! krieg eh eine warning hab ich grad gesehen 😞

    werd jetzt dein bsp übernehmen...

    thx



  • hephaistos6 schrieb:

    aha! krieg eh eine warning hab ich grad gesehen 😞

    eben. in einen funktionszeiger konvertieren mußt du es am ende sowieso. und da hast du dann wieder das problem, wie du für den cast einen funktionszeiger-typ schreiben sollst.


Log in to reply