Il controllo di avvertimento raggiunge la fine della funzione non vuota

Il controllo di avvertimento raggiunge la fine della funzione non vuota
Quando scriviamo i programmi in C++. Dopo aver eseguito i programmi, a volte otteniamo l'errore: "Avvertenza: il controllo raggiunge la fine della funzione non vuota", il che significa che alcune funzioni che dovrebbero restituire alcuni valori raggiungono la risoluzione. Potrebbe non dare valore in seguito. Al momento, è bene dare un'occhiata se ogni flusso di controllo contiene un valore di restituzione. Per riconoscere questo difetto, dobbiamo prima riconoscere il funzionamento del compilatore.

Esistono due varietà di inesattezze che si verificano mentre si esegue un programma.

Errori a tempo di compilazione: Guasto che può essere riconosciuto con l'aiuto dell'utilizzo del compilatore senza eseguire il codice. Di solito, questi sono errori di sintassi che vengono riconosciuti senza eseguire il codice.

Errori di runtime: Guasto che accade mentre la sintassi del programma è accurata; Tuttavia, ci sono un po 'di problemi mentre il codice sta eseguendo. Di solito, i loop illimitati per l'accesso alla reminiscenza non validi scendono al di sotto degli errori di runtime.

Questo articolo parlerà di problemi comuni affrontati dai novizi e di programmatori qualificati. Spesso eseguiamo la cautela affermando che "il controllo raggiunge la fine della funzione non vuota". Di solito, trascuriamo questo errore a causa del fatto che il tempo del tempo perché il programma esegue comunque lo stesso, anche supponendo che questa cautela stia arrivando.

Ottieni il messaggio di avvertimento:

La compilazione di questo codice esegue, ma si verifica un errore, che mostra il controllo di avvertimento che raggiunge la fine della funzione non vuota ". Ogni funzione contiene un tipo di reso che mostra il tipo di valore che la funzione potrebbe restituire. Se il metodo non sta restituendo alcun valore, è lontano da un tipo di ritorno a vuoto. Otteniamo l'errore sopra, mentre la funzione non vuota non restituisce il valore.

#includere
Utilizzo dello spazio dei nomi std;
int f ()
Se (falso)
restituzione 0;

int main ()
F();
restituzione 0;

In questo caso, in primo luogo, integriamo il file di intestazione e utilizziamo lo standard namespace. Inoltre, applichiamo l'istruzione IF. A volte può essere la situazione in cui abbiamo numerose istruzioni IF-ELSE se le dichiarazioni e tutte le dichiarazioni contengono il valore di ritorno; Tuttavia, se non c'è nessun altro affermazione, possiamo comunque ottenere l'errore a causa del fatto che il compilatore non potrebbe comprendere che ogni situazione è coperta.

Qui non otteniamo nulla in output, quindi significa che il codice viene eseguito correttamente, ma la funzione non restituisce alcun valore.

Usa l'istruzione if:

In questo caso, se la condizione di solito non è vera e di conseguenza fermerà la funzione 'F' privata di restituire un po 'di valore. Ed è il motivo dietro ricevere il messaggio di attenzione. Il controllo all'interno del messaggio di attenzione mostra il flusso di questo codice. Ora controlliamo se si tratta di un errore di runtime o di un errore di compilazione. L'avvertimento che otteniamo qui viene rilevato al momento dell'assemblaggio, l'uso della semplice sintassi di questo codice e il codice non è sempre sicuramente eseguito per testare se è lontano la terminazione di qualsiasi metodo non vuoto.

#includere
Utilizzo dello spazio dei nomi std;
int f (int a)
se un < 8)
restituzione 0;

int main ()
f (3);
restituzione 0;

Ci è sempre assicurato che se eseguiamo il codice, sta restituendo un valore 0; Tuttavia, tuttavia, possiamo ottenere lo stesso messaggio di cautela a causa del fatto che il compilatore non funziona abbastanza in modo intelligente da riconoscere al momento della compilazione che una volta eseguito questo codice, restituirà il valore ogni volta. Il compilatore controlla semplicemente la sintassi del codice e traduce che per la funzione 'f' se la condizione definita non è vera, il flusso di questo codice raggiungerà la riga otto e non potrebbe restituire il valore, e quindi noi ottenere l'errore.

Dopo aver compilato il programma, in output, non otteniamo nulla a causa dell'errore "il controllo raggiunge la fine della funzione non vuota".

Usa le dichiarazioni di restituzione:

Quando le dichiarazioni condizionate non devono includere dichiarazioni di restituzione, il controllo arriva alla fine di una funzione non vuota in un altro modo. Pertanto, se l'implementazione all'interno del metodo non vuoto è separata e se le istruzioni non potevano eseguire ciascun percorso, allora alla fine, dobbiamo chiamare esplicitamente "restituire" per la funzione.

L'istanza successiva convalida la funzione di gestione della stringa con percorsi condizionali. Qui includiamo tre librerie per scopi diversi e, successivamente, dichiariamo una funzione. D'altra parte, alcuni casi non vengono più valutati per la condizione definita, il che significa che il flusso di controllo può raggiungere la cessazione della funzione e produrre errori.

Qui abbiamo definito la funzione "Reversestring". Passiamo la stringa e la condizione come parametri a questa funzione. Il corpo della funzione non contiene alcuna dichiarazione di ritorno. Tuttavia, non contiene argomenti per chiamare la funzione. Quindi il compilatore mostra solo il messaggio di cautela. Se chiamiamo la funzione, allora non otteniamo l'errore.

Conclusione:

In questo articolo, otteniamo informazioni sull'errore: "Il controllo raggiunge la fine della funzione non vuota" e vediamo come otteniamo questo errore. Il metodo non vuoto contiene il tipo di ritorno. Pertanto, il metodo vuole avere una dichiarazione che restituisce gli elementi del tipo risultante. Se vengono accettati standard di compilatore definiti, questo errore può essere represso completamente, portando a errori di runtime se il metodo specificato chiama nel codice.