Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152

    [C] Uscire da un insieme di funzioni

    Ho un problema, ho implementato un esercizio che richiede una serie di chiamate a più funzioni, molte delle quali sono ricorsive. Lo scopo è quello di riconoscere una determinata stringa di caratteri, e quando la grammatica risulta non corretta al primo carattere inesatto bisogna stampare un messaggio di errore e tornare al principale. C'è un metodo veloce e semplice per uscire dall'ambiente in cui è statoi rilevato l'errore, e di conseguenza anche da quelli chiamanti rimasti in attesa di un ritorno per tornare al principale con un messaggio di errore ?

  2. #2
    In C++ si userebbe un'eccezione, che risale lo stack automaticamente finché non trova un handler adeguato; in C c'è la coppia setjmp/longjmp, ma normalmente si tende ad evitare, dato che si ottiene codice poco leggibile (e dal comportamento imprevedibile per chi non ne conosce l'uso).
    La soluzione più semplice alla fine resta restituire un valore particolare che faccia sì che le funzioni ricorsive ritornino immediatamente.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.