c typedef void pointer problem

#2397088
Lesenswert?

zeus schrieb:
> Hallo !
>
> kann mir bitte jemand diese C code zeile erklären ?
>
> typedef void (*timer_expiry_cb_t)(void *);
>
> danke voraus!

Das beschreibt den Typ einer Funktion, welche einen void-Pointer als 
Argument entgegennimmt und keine Rückgabe liefert. Dieser Typ kann im 
Folgenden als "timer_expiry_cb_t" benannt werden.

Viele Grüße,
        Simon
Gast #2397113
Lesenswert?

Danke erstmal für die schnelle antworten.

soweit ich verstanden hab da es ein typedef ist kann ich es wie folg 
verwenden:
1
typedef void (*timer_expiry_cb_t)(void *);
2

3
timer_expiry_cb_t callback; // --> d.h. void (*callback) (void *);
4
callback = funktion1; 
5
(*callback)(&var1); // die funktion1 wird mit der adresse von var1 aufgerufen.

stimmt das?
#2397118
Lesenswert?

(unknown) schrieb:

> soweit ich verstanden hab da es ein typedef ist kann ich es wie folg
> verwenden:

Ja. Aber
  callback = function;
  callback(&var1);
tut es auch und entspricht dem Ursprung der Sprache, während
  callback = &function;
  (*callback)(&var1)
als Konzession an Nutzer hinzu kam, die von einem Funktionsnamen als 
implizitem Pointer und dem () Operator als Aufruf über einen Pointer 
irritiert waren. Daher ist
  callback = function;
  (*callback)(&var1)
ein inkonsistenter Hybrid aus beiden Varianten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren