• Предмет: Информатика
  • Автор: Lolka21212323
  • Вопрос задан 5 месяцев назад

Как правильно прочитать это сложное обьявление?
int (* (* ( *fun ) ( ) ) [ ] )( )

Ответы

Ответ дал: rahlenko007
0

Ответ:

Круглые скобки в этом объявлении указывают на группировку типов и указывают, что тип fun — это функция, не принимающая аргументов и возвращающая указатель на массив указателей на функции. Эти функции не принимают аргументов и возвращают указатель на массив указателей на функции, которые не принимают аргументов и ничего не возвращают.

Может быть полезно начать с чтения объявления изнутри, поскольку самый внутренний тип — это тот, на который указывают или возвращают. В этом случае самым внутренним типом является «функция, которая не принимает аргументов и ничего не возвращает», и на нее указывает указатель, на который сам указывает массив указателей. На эти указатели, в свою очередь, указывает функция, которая не принимает аргументов и возвращает указатель на массив указателей. Наконец, fun — это указатель на эту функцию.

Объяснение:

Более удобочитаемым способом написания этого объявления может быть:

typedef void (*fun_t)(void);

typedef fun_t (*array_fun_t)[];

typedef array_fun_t (*ptr_array_fun_t)(void);

ptr_array_fun_t fun;

Вас заинтересует