Цитата(TigerSHARC @ Aug 31 2012, 22:54)

затем происходит вызов
CODE
func(x,y);
И что вызов действительно происходит?
Компилятор скомпилировал, линкер слинковал?
Цитата(TigerSHARC @ Aug 31 2012, 22:54)

Непонятно где тело функции func и что в ней происходит.
Судя по тому что вы задаёте такой вопрос, мне кажется что тела функции нет - вы её не определили.
И вызвать так тоже не удастся.
Как-то так попробуте:
Код
tPARSE_cmd Parser;
tBool Cmd1( some_struct * p, char * pArg )
{
// парсинг команды 1
}
tBool Cmd2( some_struct * p, char * pArg )
{
// парсинг команды 2
}
int main()
{
/// bla bla bla - какой-то код
Parser.funk=Сmd1;
tBool parsing_result=Parser.funk(A, B);
if (parsing_result) {
// bla bla bla - какой-то код
}
/// bla bla bla - какой-то код
Parser.funk=Сmd2;
parsing_result=Parser.funk(C, D);
if (parsing_result) {
// bla bla bla - какой-то код
}
}
PS- Offtop - не пойму в чём сермяга, писать так
Код
typedef struct tagPARSE_cmd {
const char * p; //!< command name
FuncCmd func; //!< command functions
} tPARSE_cmd;
чем хуже писать так:
Код
struct tPARSE_cmd {
const char * p; //!< command name
FuncCmd func; //!< command functions
};
?