Может кто-нибудь, пожалуйста, решить следующую проблему для меня:Как переименовать имя функции C в определении во время выполнения
Проблема: Пусть говорят, что есть две функции foo()
и bar()
определены как
void bar()
{
printf("bar\n");
}
void foo()
{
printf("foo\n");
bar();
}
Так , здесь я хочу изменить строку имени функции на bar_test в ее определении, но не в вызове. Это должно быть время выполнения, и исходный код не должен изменяться.
Ожидаемый выход, как показано ниже:
void bar_test()
{
printf("bar\n");
}
void foo()
{
printf("foo\n");
bar();
}
Благодаря
Что вы пытаетесь достичь, выполнив это? C не имеет понятия о времени выполнения функции (кроме как отладочных символов). –
Вы не можете переименовывать функции, переменные, классы, ..... на любом языке программирования. В c, имя представляет указатели на местоположение в памяти, и это статично. Кроме того, даже если вы смогли изменить его имя, вам придется изменить его вызов в исходном коде. –
Программа не выводит себя, поэтому ваш «ожидаемый результат выглядит следующим образом» не имеет никакого смысла. – hobbs