Wie rufe ich eine Funktion erneut in der Case-Anweisung in der Sprache C auf?

3 Antworten


  • Wie ich verstehe, möchten Sie die Funktion von Funktion b aufrufen, aber nicht die normale Methode a() zum Aufrufen verwenden. Richtig?
    Nun, Sie könnten mit einem Zeiger auf die Funktion aufrufen. Ich habe hier keinen Zugriff auf einen Compiler, aber der Code würde ungefähr so ​​aussehen:
     
    static void a(char message);
    void (*ptr2a)(char) = a;
    statische Leere b(Leere);
    void main( )
    {
     for(int x = 0; x < 2; ++x)
     {
      switch(x)
      {
      case 0: A((char)"Good Morningn");
       Kreislauf;
       
      Fall 1: B();
       Kreislauf;
      }
     }
    }
    void a(char-Nachricht)
    {
     printf("%s",Nachricht);
    }
    Leere b (void)
    {
     ptr2a ((char) "und gute Nacht n");
    }
  • Wenn Sie in Fall 2 als letztes a() aufrufen müssen, können Sie Ihre switch-Anweisung zuerst mit Fall 2 und dann mit Fall 1 darunter codieren. Wenn Sie dann den Aufruf von break am Ende des Codes von Case 2 vermeiden würden, würde die Ausführung im Code von Case 1 fortgesetzt und somit a() aufgerufen. Wenn es unter Fall 1 noch weitere Fälle gäbe, würde deren Code natürlich auch aufgerufen, es sei denn, Sie setzen in Fall 1 eine Pause nach dem a(). Außerdem funktioniert es nicht, wenn Sie in Fall 2 nach dem Aufrufen etwas tun müssen ein(). Es ist auch ein unglaublich schlechter Programmierstil, aber wenn Sie das aus irgendeinem Grund wirklich tun wollten, könnte es das sein, was Sie brauchen.
  • Hallo
    In meinem Programm kommt der Fehler wie "Aufruf der undefinierten Funktion 'x' in der Funktion main(), was ist dieser Fehler? Bitte erklären Sie mir.

Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear