thinker wrote:Ожидал увидеть со звездочкой, но у нас в коде было без неё.
Это вопрос соглашения, и относится он как к синтаксису инициализации/присваивания значения указателю на функцию, так и к синтаксису вызова через указатель.
Одни авторы настаивают на том, чтобы в коде было хорошо видно, где идет работа с указателем на функцию, а где - напрямую с функцией. Они, как правило, упорно стараются явно применять операторы `&` и `*` при работе с указателями
Code: Select all
size_t (*ptr)(const char *) = &strlen; // Инициализация с явным `&`
...
size_t len = (*ptr)("Hello World"); // Вызов с явным `*`
Другие авторы считают, что нет необходимости подчеркивать это различие и правильнее (и удобочитаемее) обходиться без `&` и `*`
Code: Select all
size_t (*ptr)(const char *) = strlen;
...
size_t len = ptr("Hello World");
А кто-то вообще бессистемно мешает и то, и другое...
Разницы никакой нет. Выбирайте, как вам больше нравится.