1.
int* ptr(int, int)
ptr
- это функция, которая принимает два int
аргумента и возвращает указатель на int
.
2.
int (*ptr)(int, int)
ptr
- указатель на функцию, которая принимает два int
аргумента и возвращает int
.
Последнее имеет смысл, если у вас есть несколько дополнительных функций, доступных, но вы хотите выберите определенный c один конкретным условием соответствия. Затем вы создаете массив указателей на функции и выбираете нужный указатель на функцию. Но обратите внимание, что указанная функция здесь немного отличается от функции первого примера, поскольку она возвращает int
, а не указатель на int
.
Если указанная функция должна быть эквивалентно первой форме с возвратом указателя на int
, вам нужно сделать:
int* (*ptr)(int, int)
Если у вас есть только одна функция для go, вам не нужно обращаться к ней через указатель и лучше использовать первую форму.
Если вы хотите узнать больше о указателях функций, вот ссылка на специальный вопрос SO:
Как указатели функций в C работа?