У меня есть функция заголовок в библиотеке, которая выглядит следующим образом:C - передать функции указатель на указатель на функцию
void deepCopy(CList ** clone, CList * cl, void * (* data_clone) (void * d));
Я, имеющий огромное затруднение при прохождении его функции deep_clone правильно.
Это то, что я пытаюсь в настоящее время
CList *ys2 = &ys;
void (*dc) (void *) = &data_clone;
void (**dc2) (void *) = &dc;
deepCopy(&ys2, &xs, dc2);
ССАГПЗ выход:
testclist.c: В функции 'test_deep_copy':
testclist.c: 504: предупреждение: проходя аргумент 3 из ' deepCopy 'от несовместимого указателя типа
Я пробовал cdecl.org в своем объявлении dc2, и он говорит, что это то, что я предполагаю, будет правильным.
Любая помощь очень ценится; Спасибо.
Если вы уже знаете Cdecl, использовать его на data_clone :) –
Он говорит, что есть синтаксические ошибки. Кажется, это не похоже на заголовки функций. – ratbum
Вам нужно оставить имя аргумента, как в 'explain void * (* data_clone) (void *)'. Вы также должны сделать это в своем коде. –