DOMANDA richiamare il main?

Pubblicità

marcococ

Nuovo Utente
Messaggi
29
Reazioni
1
Punteggio
21
salve ragazzi , domanda forse un pò ignorante/banale ma abbiate pazienza.......linguaggio c .......quello che chiedo è come poter richiamare il main in una funzione ....grazie!
 
Il main è una funzione che internamente è chiamato da un’altra, cioè _start(). In C++ chiamare la funzione main() causa un errore in compilazione mentre in C è possibile addirittura chiamarla ricorsivamente:
C:
int main()
{
    main();
}
Ma perché dovresti richiamare il main? È una pratica che va assolutamente evitata...
 
perchè nel main ho una sorta di menu pricipale.......in una delle funzioni successive che ho sviluppato devo mettere come opzione "torna al menù principale" ecco tutto ....grazie comunque!
 
è quello che ho fatto , ma il menu sta nel main , quindi se devo riproporre il menù in seguito devo richiamare il main......
 
Non hai bisogno di richiamare il main se puoi ritornarci :ok: (ergo, usa in modo sensato le funzioni e i return)
 
come dovrei usare i return per tornare al main? il codice ve lo risparmio, è molto lungo dato che sono 3 file linkati tra loro....
devo solo usare una funzione che se chiamata mi riporta al menù iniziale del main....
 
Ultima modifica:
Il punto è questo, stai sbagliando qualcosa se hai quella necessità. Dal main o dalla funzione chiamata dal main avrai il menu, e da lì richiamerai altre funzioni. Quando la funzione torna sei ancora nel menu.

Mostra almeno la parte del menu, altrimenti è impossibile mostrarti cosa fare, usando un caso di esempio simile alla tua situazione. ;)
 
Codice:
#include <stdlib.h>
#include <stdio.h>
#include "gamelib.h"


int main(){

  int scegli;

do{

  printf("Inserisci l'operazione da effettuare \n");
  printf(" 1. Crea mappa.\n 2. Gioca. \n 3. termina gioco.\n");
  printf("Attenzione, prima di giocare devi creare la mappa! \n " );

  scanf("%d",&scegli);
  if (scegli<1||scegli>3) {
  printf("Hai inserito un valore non valido\n" );
  }
  switch(scegli){
      case 1:
      crea_mappa();

      break;


      case 2:
     

      gioca();

      break;

      case 3:
      termina_gioco();

      break;


    }
}while(scegli!=3);


}
questo è il main.....
Codice:
void crea_mappa(){


int opzione;


do {
printf("\t Premi '1' per CREARE LA SCACCHIERA \n" );
printf("\t \n" );
printf("\t Premi '2' per STAMPARE LA SCACCHIERA \n" );
printf("\t \n" );
printf("\t Premi '3' per TORNARE INDIETRO \n" );
scanf("%d", &opzione );


switch (opzione) {
case 1:
crea_scacchiera();
break;


case 2:
stampa_scacchiera();
break;


case 3:
termina_creazione();
break;


default:
printf("Opzione non valida..\n" );
break;
}
} while(opzione!=3);


}

void termina_creazione() {

//torna al menu del main...
}


qui c'è la funzione, dove sull'opzione termina_creazione devo ritornare al menu del main....
 
Allora ti è sufficiente usare il return.
Se devi eseguire termina_creazione() e poi uscire devi mettere il return dopo alla chiamata alla funzione (il break quindi in quel case non serve).
 
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top