Указатель на функцию в качестве параметра, используя typedef - PullRequest
1 голос
/ 17 сентября 2011

Я пытаюсь создать код, который использует указатели на функции в качестве параметров, и я должен использовать typedef. Я не профессионал. Такое ощущение, что я добираюсь туда, но я не могу найти хорошего объяснения синтаксиса указателей на работу.

У меня есть функция fillArray:

long fillArray(long *array, int x, int y) {
//
}

тогда я хочу сделать typedef указателя на эту функцию:

typedef long (*fArray)(long, int, int);

fArray pFill = fillArray;

и я хочу передать этот pFill функции doThis ():

int doThis (fArray pFill) {
  return 0;
}

и вызов его с помощью:

int y = doThis(pFill);

Что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 17 сентября 2011

Ваш typedef должен быть:

typedef long (*fArray)(long *, int, int);
                            ^
2 голосов
/ 17 сентября 2011

Ваша fillArray функция принимает long * в качестве первого параметра, вы забыли * в typedef:

typedef long (*fArray)(long *, int, int);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...