What does this C statement mean?

c, pointers

Solution

To break this down yourself, start from the inner most parentheses and work your way out.

- `(*[10])` <---- Array of 10 pointers

- `(*[10])(int *)` <------ Array of 10 pointers to functions which has a pointer to `int` as its argument

- `(void (*[10])(int *))` <------ Array of 10 pointers to functions which has a pointer to `int` as its argument and returns `void`

- `(*x)(void (*[10])(int *))` <------- `x` is a pointer to a function which has as an argument (an array of 10 pointers to functions which has a pointer to int as its argument and returns `void`)

.....

I stopped partway through, but hopefully that helps.

Problem

I came across this line: ``` void (*(*x)(void (*[10])(int *)))(int *) ``` Can anybody tell me what it is?

Original source

Related problems