Ambrosius
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");
}
Dave
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.
Kaya
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.