void (*func)(const Arg *arg) w strukturze
Ostatnio zmodyfikowano 2020-08-30 19:33
kocotian Temat założony przez niniejszego użytkownika |
void (*func)(const Arg *arg) w strukturze » 2020-08-30 18:44:15 Witam serdecznie. Czytając kod dwm (dwm.suckless.org) natrafiłem na takie dziwne coś w strukturze: typedef struct { unsigned int click; unsigned int mask; unsigned int button; void( * func )( const Arg * arg ); const Arg arg; } Button;
wcześniej jest jeszcze unia: typedef union { int i; unsigned int ui; float f; const void * v; } Arg;
czy ktoś zdołałby mi wyjaśnić na czym to polega? Myślałem czy nie jest to po prostu rzutowanie, ale dziwi mnie, że po nazwie typu znajduje się tak jakby definicja drugiej zmiennej ( const Arg * arg ) Pozdrawiam //PS. - to jest C99 |
|
pekfos |
» 2020-08-30 19:25:20 To jest wskaźnik na funkcję zwracającą void i przyjmującą jeden argument const Arg*. |
|
kocotian Temat założony przez niniejszego użytkownika |
» 2020-08-30 19:33:28 Dang, dzięki, to by też wyjaśniało dlaczego w pliku konfiguracyjnym możemy dzięki takiej strukturze: typedef struct { unsigned int mod; KeySym keysym; void( * func )( const Arg * ); const Arg arg; } Key;
zadeklarować w łatwy sposób bindingi: static Key keys[] = { { MODKEY, XK_p, spawn, {.v = dmenucmd } }, }
Jeszcze raz dzięki, zamykam i pozdrawiam |
|
« 1 » |