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.
[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...