Создайте фрагмент за раз:
Переменная с именем fubar
...
fubar
... это указатель ...
*fubar
... для функции ...
(*fubar)()
..., которая получает указатель на символ ...
(*fubar)(char *)
... и возвращаетуказатель ...
*(*fubar)(char *)
... на массив из 7 элементов ...
(*(*fubar)(char *))[7]
... где каждый элемент является указателем ...
*(*(*fubar)(char *))[7]
... до struct Sporcle
.
struct Sporcle *(*(*fubar)(char *))[7]
Ваш ответ неверен - вещь слева (называемая описатель объявления ) может указывать только напрямуютип (базовый тип, например int
, struct
, union
, enum
или имя типа, определенное с помощью typedef
, опционально измененное с помощью спецификатора класса хранения, например static
, и / или спецификатор типа, напримерconst
).Типы указателей, массивов и функций создаются путем изменения правой части объявления (называемого Объявление ), путем добавления к нему *
, []
или ()
.
В этом случае спецификатор объявления равен struct Sporcle
, а остаток - декларатор.