Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    E' una funzione fornita nel file stdlib.h e serve a terminare l'esecuzione di un programma in modo diverso da quello normale del valore di ritorno del main()
    Questa forza la chiusura del programma, però ha il vantaggio di avere una scaletta
    Con la funzione atexit puoi registrare le funzioni che deve eseguire prima di chiudere. Dopo aver registrato le funzioni interessate, puoi chiamare exit che riceve le costanti simboliche EXIT_SUCCESS e EXIT_FAILURE.
    Riporto un esempio

    codice:
    #include <iostream.h>
    #include <stdlib.h>
    
    void print(void);
    
    int main()
    {
    atexit(print); //registra la funzione print
    int adso;
    cout <<"Premi uno per l'uscita forzata\n";
    cin >> adso;
    
    if (adso == 1)
    exit(EXIT_SUCCESS);
    else
    return 0;
    }
    
    void print(void) { cout <<"buongiorno\n"; cout<<endl;}
    Se premi uno alla richesta, il programma ti visualizzerà anche il messaggio buongiorno: perchè è stata registrata come funzione da eseguire al comando exit.
    Non so se sono stato chiaro

  2. #12
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    la funzione registrata con atexit viene eseguita anche se il programma termina normalmente senza invocare la exit();

    #include<iostream.h> è obsoleto

    #include<iostream> è la forma corretta

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #13
    Originariamente inviato da XWolverineX
    ...
    codice:
        ...
        atexit(print); //registra la funzione print
        ...
    ...
    Non so se sono stato chiaro
    Tu si ma probabilmente io no

    Originariamente inviato da Samuele_70
    ... Differenze a livello di valore restituito naturalmente...
    Intendevo che apparentemente non c'è alcuna differenza tra:

    codice:
    int main()
    {
       ...
       int a = 999;
       exit(a);
    }
    ...e...
    codice:
    int main()
    {
       ...
       int a = 999;
       return a;
    }
    Entrambe le soluzioni funzionano correttamente, restituendo
    in uscita il valore di 'a'.
    La distinzione tra i comando 'return' e la funzione 'exit()'
    è solo formale allora ?
    A parte il fatto che 'exit()', ovviamente, termina il prog
    da qualsiasi funzione venga richiamata mentre 'return' cessa
    l'esecuzione del prog solo quando viene eseguito dentro il
    main().
    Conoscete altre differenze ? :master:
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.