LINUX.ORG.RU
Форум — Development

Динамически переопределить функцию в C


0

0

Поясню, чего хочется на примере (не имеет никакого отношения к моей программе):

void SHOW_LIST(char *command);

void myf1(char *command)
{
system(command);
}

void myf2(char *)
{
printf(command);
}

void main()
{
SHOW_LIST = myf1;

SHOW_LIST("ls");
}

★★★★★

То есть нужно, чтобы вызов SHOW_LIST вызывал нужную функцию из myf1 или myf2. Передаваемые и возвращаемые параметры у myfX одинаковые.

saper ★★★★★
() автор топика

Вот ровно для этого и существуют указатели на функцию.

Teak ★★★★★
()

void (* SHOW_LIST)(char *command);

void myf1(char *command)
{
  system(command);
}

void myf2(char *command)
{
  printf(command);
}

void main()
{
  SHOW_LIST = myf1;

  SHOW_LIST("ls");
} 

anonymous
()
Ответ на: комментарий от anonymous

Спасибо. Забыл про звездочку.

saper ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.