2013-12-04 2 views
-2

У меня есть функцияЧто такое pf apply in c?

void join(table first, void(*pfapply)(const char *inp1,const void *inp2,void *addn),const void *addn); 

здесь первый является экземпляром структуры таблицы, как показано ниже

struct table 
{ 
    char inp1; 
    int inp2; 
}struct table *first; 

Теперь, как добавить эту дополнительную переменную «Addn» в этом «присоединиться к функции»

В моей таблице символов у меня есть два значения inp1 и inp2. Как добавить addn в мою структуру, используя указанную выше функцию?

мне нужно связать Addn с INP1 двумя переменными и Вх.2 ...

+2

Название вашего вопроса не соответствует тому, что вы просите в своем теле вопроса (и я действительно не понимаю, что вы спрашиваете в своем теле вопроса - 'addn' находится прямо там в функции, в чем проблема?). – Dukeling

+0

Не совсем понятно, что именно вы хотите !!! – Srikanth

+0

недействительный SymTable_map (SymTable_t oSymTable, недействительных (* pfApply) (Const символ * pcKey, сопзИте пустоты * pvValue, пустоты * pvExtra), сопзИте пустоту * pvExtra); SymTable_map итерации по всей SymTable и применяет pfApply на каждом связывание. pfApply принимает третий параметр, который передается из функции отображения. – seth

ответ

1

The addn, вероятно, просто API дружелюбия и обеспечивая поддержку для дополнительных параметра к pfapply() обратному вызову.

Это признак хорошего дизайна, поскольку он позволяет обратному каналу получать доступ к некоторым своим данным, не делая его глобальным.

Если вам не нужны какие-либо дополнительные данные, просто игнорируйте аргумент внутри вашей прикладной функции и вызывайте join() с NULL в качестве третьего аргумента.

Вам ничего не нужно менять в декларации table, все в порядке.