Buongiorno, sono alle prime armi con il c++ e avrei bisogno di sapere come è possibile terminare un programma da una funzione di tipo void con una chiamata. per spiegarmi meglio, ho una funzione che va a controllare dei valori, e in alcune situazioni dovrei terminare il programma lì, senza eseguire tutte le funzioni chiamate nel main successivamente. Qualcuno avrebbe qualche consiglio? |
Nulla di più semplice! Basta scrivere 'return 0;' dopo la chiamata della funzione, ad esempio int main () { void funza (); return 0; //altre funze che non verranno eseguite } Aggiungo che sarebbe buona pratica non returnare esplicitamente lo zero nel main, visto che viene returnato automaticamente alla fine. Talvolta, magari in un caso try-catch, returnare valori diversi da zero potrebbe essere utile a debuggare il programma o a far sapere ad altri programmi che qualcosa è andato storto e dove. Fammi sapere se vuoi esempi più concreti nei commenti =) Se invece intendevi interrompere la funzione che returna void e poi arrestare anche il main, basta definire una variabile booleana in ambito globale o in un namespace. Modificando tale variabile e controllandone il valore nel main si ottiene il risultato ottenuto, ad esempio namespace mybools { bool check = false; }; void funza () { include namespace mybools; // omissis if (/condizione di uscita/){ check = true; break; // o qualsiasi altra cosa ti faccia uscire dalla funzione } } int main () { void funza(); if ( mybools::check ) return 0 ; //altre funze } chiaramente in questo caso sarebbe più semplice returnare direttamente un bool, sempre che per qualche motivo la funzione non debba essere necessariamente void. Ricordati che da terminale puoi sempre abortire un processo con CTRL+C. Se il processo è in background puoi usare 'pkill [nomeprocesso]'. |
Segui questa domanda
Via email:Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui
Via RSS:Basi di markdown
- *corsivo* o __corsivo__
- **grassetto** o __grassetto__
- collegamento:[testo](http://url.com/ "titolo")
- immagine?
- elenco numerato: 1. Foo 2. Bar
- per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
- è supportato anche semplice HTML
Tag:
domanda posta: 19 May '21, 16:22
domanda visualizzata: 783 volte
ultimo aggiornamento: 19 May '21, 20:20