Eine Frage zur C-Syntax:
Was passiert hier? Es scheint ein Typecast zu sein, aber die Syntax
kenne ich nicht:
1 | espnowregisterrecvcb (espnowrecvcbt (OnDataRecv));
|
OnDataRecv ist ein Zeiger auf eine Funktion.
espnowrecvcbt ist ein Typ (Functionpointer):
1 | typedef void (*espnowrecvcbt)(const inf_t * inf, const uint8_t *dat, int len);
|
espnowregisterrecvcb() ist eine Funktion, die einen Functionpointer
erwartet.
Nach meiner Kenntnis hätte ich für ein Typecast in Etwa erwartet:
1 | espnowregisterrecvcb ( (espnowrecvcbt) OnDataRecv);
|
Ist das oben (schon immer) gültiges C?
Ist das ein Typecast?
Was ist der Unterschied zwischen der vorgefundenen und der von mir als
richtig empfundenen Syntax?