¿Cómo volver a llamar a una función en una instrucción de caso en lenguaje C?

3 Respuestas


  • Según tengo entendido, desea llamar a la función desde la función b pero no usar el método a () normal para llamar. ¿Correcto?
    Bueno, podrías llamar usando un puntero a la función. No tengo acceso a un compilador aquí, pero el código se vería así:
     
    static void a (char message);
    void (* ptr2a) (char) = a;
    vacío estático b (vacío);
    void main ()
    {
     for (int x = 0; x <2; ++ x)
     {
      switch (x)
      {
      case 0: A ((char) "Buenos díasn");
       ciclo;
       
      caso 1: B ();
       ciclo;
      }
     }
    }
    anular un (mensaje de caracteres)
    {
     printf ("% s", mensaje);
    }
    void b (void)
    {
     ptr2a ((char) "y buenas noches n");
    }
  • Si necesita llamar a () como lo último en el caso 2, puede codificar su declaración de cambio con el Caso 2 primero, luego el Caso 1 debajo. Si luego evitó llamar a break al final del código del Caso 2, la ejecución continuaría en el código del Caso 1, por lo que llamaría a (). Por supuesto, si hubiera más casos debajo del Caso 1, su código también se llamaría a menos que ponga un descanso después de a () en el Caso 1. Además, no funciona si necesita hacer algo en el Caso 2 después de llamar a(). También es un estilo de codificación increíblemente malo, pero si, por alguna razón, realmente quisieras hacer eso, podría ser lo que necesitas.
  • Hola
    En mi programa, el error viene como "Llamar a la función indefinida 'x' en la función main (), ¿cuál es este error? Por favor, explícame.

Escribe tu respuesta

Tu respuesta aparecerá después de la moderación