Круглые скобки в этом объявлении указывают на группировку типов и указывают, что тип fun — это функция, не принимающая аргументов и возвращающая указатель на массив указателей на функции. Эти функции не принимают аргументов и возвращают указатель на массив указателей на функции, которые не принимают аргументов и ничего не возвращают.
Может быть полезно начать с чтения объявления изнутри, поскольку самый внутренний тип — это тот, на который указывают или возвращают. В этом случае самым внутренним типом является «функция, которая не принимает аргументов и ничего не возвращает», и на нее указывает указатель, на который сам указывает массив указателей. На эти указатели, в свою очередь, указывает функция, которая не принимает аргументов и возвращает указатель на массив указателей. Наконец, fun — это указатель на эту функцию.
Объяснение:
Более удобочитаемым способом написания этого объявления может быть:
Answers & Comments
Ответ:
Круглые скобки в этом объявлении указывают на группировку типов и указывают, что тип 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;