Forum: PC-Programmierung C++ unverständliche Codeabschnitt


von ManuelGast (Gast)


Lesenswert?

Hallo Zusammen,

kann bitte mir jemenden dieses Codeabschnitt erklären?
1
typedef BOOLEAN (__stdcall *HidD_GetAttributes_)(HANDLE device, PHIDD_ATTRIBUTES attrib);
und dann
1
static HidD_GetAttributes_ HidD_GetAttributes;

Was will man damit erreichen?

Danke in voraus

von Rainer B. (katastrophenheinz)


Lesenswert?

Hi,

Stichwort Funktionszeiger: Der Autor definiert sich mit 
HidD_GetAttributes_ einen Typ für einen Zeiger auf eine Funktion, die 
als Parameter HANDLE und PHIDD_ATTRIBUTES erwartet und BOOLEAN 
zurückliefert.

Direkt danach legt er sich eine Variable HidD_GetAttributes mit diesem 
Typ an.

Was will man damit erreichen? Den genauen Zweck dessen, was der Autor 
damit erreichen will, kann man anhand des Schnipsels nicht erraten.

Sinnvoll ist solch ein Konstrukt z.B. in Situationen, in denen man erst 
zur Laufzeit entscheidet, welche konkrete Funktion von mehreren 
Alternaten aufgerufen wird und das nicht umständlich im Code 
ausprogrammieren will oder wenn man einer Funktion einen 
Callback-Handler mitgeben will.

von ManuelGast (Gast)


Lesenswert?

Vielen Dank für die ausführliche Antwort

von ... (Gast)


Lesenswert?

Das ist übrigens nicht C++-spezifisch...

von Hans (Gast)


Lesenswert?

ich würde sogar sagen, dass das eine reine C-API ist...

73

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.