Spezifizierer für Funktionen



  • Mir macht ab und an Funktionsdeklarationen Kopfzerbrechen.

    Aus der FreeImage Dokumentation:

    DLL_API FIICCPROFILE *DLL_CALLCONV FreeImage_CreateICCProfile(FIBITMAP *dib, void *data, long size);
    

    Bei dem Beispiel kann ich mit dem DLL_API FIICCPROFILE nix anfangen.

    GalileoComputing.de:

    [Spezifizierer] Rückgabetyp Funktionsname(Parameter) {
       /* Anweisungsblock mit Anweisungen */
    }
    

    Laut Refenenz müsste die Wörter Spezifizierer sein, aber dafür sind wiederum nur extern, static und volatile zugelassen.

    Gibt es ne Referenz die mir das erklären kann?

    PS:
    Ich hab auch ein schlaues Buch welches mir eine etwas umfangreichere Syntax für den Funktionskopf liefert, aber halt nicht an den entsprechenden Stelle.

    [Speicherklasse] Typ func_name ([parameter]) [cv-Qualifizierer] [[b]throw[/b](Exception-Liste)]
    {
    FUNKTIONSKÖRPER
    }
    

    Und zur Speicherklasse kommt laut Buch nur extern und static in Frage.

    Gruss Sebastian



  • DLL_API FIICCPROFILE *DLL_CALLCONV FreeImage_CreateICCProfile(FIBITMAP *dib, void *data, long size);
    

    DLL_API = ist ein macro dass, Spezifizierer enthählt

    FIICCPROFILE* = ist der Rückgabetyp

    DLL_CALLCONV = ist ein macro dass, die calling convention enthählt



  • SK-Genius schrieb:

    Ich hab auch ein schlaues Buch welches mir eine etwas umfangreichere Syntax für den Funktionskopf liefert, aber halt nicht an den entsprechenden Stelle.

    [Speicherklasse] Typ func_name ([parameter]) [cv-Qualifizierer] [[b]throw[/b](Exception-Liste)]
    {
    FUNKTIONSKÖRPER
    }
    

    das 'throws' ist jedenfalls kein C. vielleicht Java oder sowas...
    🙂


Anmelden zum Antworten