natknąłem tej linii:Co oznacza to stwierdzenie C?
void (*(*x)(void (*[10])(int *)))(int *)
Czy ktoś może mi powiedzieć co to jest?
natknąłem tej linii:Co oznacza to stwierdzenie C?
void (*(*x)(void (*[10])(int *)))(int *)
Czy ktoś może mi powiedzieć co to jest?
Aby to przełamać siebie, początek od wewnętrznej strony nawiasów i wypracuj sobie wyjście.
(*[10])
< ---- Array z 10 wskaźników(*[10])(int *)
< ------ Array z 10 wskaźników do funkcji, które posiada wskaźnik do int
jako argument(void (*[10])(int *))
< --- --- Tablica 10 wskaźników do funkcji, które mają wskaźnik do int
jako argument i zwraca void
(*x)(void (*[10])(int *))
< ------- x
jest wskaźnikiem do fu nction który ma jako argument (tablicę 10 wskaźników do funkcji, które posiada wskaźnik do int jako argument i zwraca void
).....
zatrzymałem partway dzięki, ale mam nadzieję, że pomaga.
Chciałbym przegłosować to, gdybym miał dzisiaj więcej głosów do wykorzystania. –
Pójdę po kawę, jeśli ostatnio nie miałem filiżanki. –
Wskaźnik do funkcji, którą ma tablicę 10 wskaźników do funkcji który ma int * argument i powrotu typu nieważny argumentu i powraca wskaźnik do funkcji, którą ma int * argument i typ zwrotu nieważne.
Ostatecznym pytaniem jest, jak byś się zastanowił, gdybyś tego nie zrobił? –
@TonyTheLion, bez pytań, dlaczego ktoś napisałby coś takiego bez rozbijania go na mniejsze kawałki? –
cdecl jest bardzo pomocne dla tego typu rzeczy. Mówi:
deklaruje x jako wskaźnik do funkcji (tablica 10 wskaźnik do funkcji (wskaźnik na int) powrocie void) powrót wskaźnika do funkcji (wskaźnik na int) powrocie void
wyjaśnienia można znaleźć tutaj:
Jest to quiz, czy co? :) – FailedDev
Łatwo odpowiedzieć: To bałagan. –
Odpowiedź jest zawsze http://www.cdecl.org. – mkb