typedef deklaration
-
Hallo,
wie muss ich den Pointer pFunction deklarieren, wenn ich dieses typedef nicht verwenden möchte? Hab das mit dem Typedef noch nicht ganz verstanden - bzw. in diesem Fall für was PTR_FUNCTION genau ersetzt wird.
typedef void (*PTR_FUNCTION)(void *);
PTR_FUNCTION pFunction;
derTim
-
Du müßtest ansonsten die Funktionsdeklaration direkt hinschreiben:
void (*pFunction)(void *);
und da das sehr unleserlich ist, verwendet man halt typedefs -)
-
Th schrieb:
Du müßtest ansonsten die Funktionsdeklaration direkt hinschreiben:
und da das sehr unleserlich ist, verwendet man halt typedefs -)
ich glaube, das ist sehr subjektiv. Mir persönlich gefallen die ganzen typedefs nicht, weil wenn ich viel später im Code nur PTR_FUNCTION wasauchimmer; sehe, dann weiß ich nicht mehr, wie PTR_FUNCTION definiert wurde. Deswegen benutze ich keine typedefs für Funktionspointer
-
Aber z.B. als Funktionsparameter ist die ausgeschriebene Schreibweise doch schön kryptisch:
void set_callback(void (*callback)(int, const char *));
Außerdem haben Typedefs den Vorteil, daß man dann zentral an einer Stelle den Prototypen der Funktion sieht und diesen dann ändern kann, ohne alle Sourcen durchzugehen.
Aber jeder so, wie er will, solange es keine Team-Styleguides gibt...
-
Th schrieb:
Aber z.B. als Funktionsparameter ist die ausgeschriebene Schreibweise doch schön kryptisch:
void set_callback(void (*callback)(int, const char *));
Geschmackssache. Ich finde es gar nicht kryptisch und auerdem gefällt mir es jedenfalls besser so, wie du es jetzt hingeschrieben hast, weil ich dann sofort am Prototyp erkennen kann, um was für ein Callback es sich handelt.
Th schrieb:
Außerdem haben Typedefs den Vorteil, daß man dann zentral an einer Stelle den Prototypen der Funktion sieht und diesen dann ändern kann, ohne alle Sourcen durchzugehen.
Das ist allerdings wahr und da geb ich dir vollkommen Recht.