C массив с "[]) (char **)" - PullRequest
       14

C массив с "[]) (char **)"

1 голос
/ 14 марта 2019

Я нашел следующее объявление в источнике lsh :

int (*builtin_func[]) (char **) = {
  &lsh_cd,
  &lsh_help,
  &lsh_exit
};

Я относительно новичок в C, но (*builtin_func[]) (char **) выглядит очень странно.Что это значит?

(меня больше интересует декларация, а не цель кода.)

1 Ответ

3 голосов
/ 14 марта 2019

int (* builtin_func []) (char **)

Это означает, что переменная builtin_func определяется как

Неполный массив указателей нафункции, которые получают указатель на указатель на символ и возвращают целые числа.

Далее,

= {& lsh_cd, & lsh_help, & lsh_exit};

список инициализаторов завершит массив, сделав его из 3-х таких указателей - при условии, что все 3 функции следуют одинаковой сигнатуре.

...