Амвросий
Как я понимаю, вы хотите вызывать функцию из функции b, но не использовать для вызова обычный метод a (). Верный?
Ну, вы могли бы вызвать, используя указатель на функцию. У меня здесь нет доступа к компилятору, но код будет выглядеть примерно так:
static void a (char message);
void (* ptr2a) (char) = a;
static void b (пустота);
void main ()
{
for (int x = 0; x <2; ++ x)
{
switch (x)
{
case 0: A ((char) «Доброе утро»);
цикл;
случай 1: B ();
цикл;
}
}
}
void a (char message)
{
printf ("% s", сообщение);
}
void b (void)
{
ptr2a ((char) "и спокойной ночи n");
}
Дэйв
Если вам нужно вызвать a () в последнюю очередь в случае 2, вы можете сначала закодировать оператор switch с помощью Case 2, а затем Case 1 под ним. Если затем вы избегаете вызова break в конце кода варианта 2, выполнение продолжится в коде варианта 1, вызывая, таким образом, a (). Конечно, если бы были другие случаи ниже Варианта 1, их код также был бы вызван, если вы не поставили перерыв после a () в Варианте 1. Также это не сработает, если вам нужно что-то сделать в Варианте 2 после вызова а (). Это тоже невероятно плохой стиль кодирования, но если по каким-то причинам вы действительно захотели это сделать, это может быть то, что вам нужно.
Кая
Привет.
В моей программе ошибка выглядит как «Вызов неопределенной функции 'x' в функции main (), что это за ошибка? Пожалуйста, объясните мне.