Le basi consigli utili

di il
3 risposte

Le basi consigli utili

Ho deciso di seguire i vostri consigli e ho comprato il libro sull'introduzione ragionata e sugli esercizi ragionati... li sto trovando molto chiari e utili per chi è all'inizio, ma se avete altre cose da consigliarmi le accetto volentieri.
per ora ho fatto solo i cicli e le funzioni ma c'è un comando che non capisco quando possa essere utilizzato il "void" per la funzione.. ho credo di aver capito quando si usa ma il concetto è cosa mi serve se mi da diciamo un risultato "vuoto"?

3 Risposte

  • Re: Le basi consigli utili

    tipa98 ha scritto:


    credo di aver capito quando si usa ma il concetto è cosa mi serve se mi da diciamo un risultato "vuoto"?
    Ipotizzo che tu non abbia ancora studiato il passaggio di un parametro per valore e per riferimento ad una funzione, in ogni caso una funzione di tipo void può essere anche utilizzata per esempio per stampare a video qualcosa.
  • Re: Le basi consigli utili

    Si probabile sono ancora all'inizio delle funzioni
    grazie comunque
    magari quando dovreo usarlo capirò veramente il senso
  • Re: Le basi consigli utili

    Nelle funzioni serve per dire che "la funzione non ritorna nulla" (appunto come una funzione che stampa solo a video senza dover "passare" valori al resto del programma).

    In altri casi (usato come void*) è un puntatore a funzione.

    Difficile che vedrai tali costrutti in corsi base

    In pratica
    
    #include <stdio.h>
    //funzione con parametro intero e lo stampa
    void fun(int a)
    {
        printf("Il valore passato è %d\n", a);
    }
      
    int main()
    {
       
        void (*fun_ptr)(int); //definisco il puntatore a funzione
        fun_ptr = &fun;  //assegno a fun_ptr l'indirizzo della funzione
       
        // Chiamo fun(), con 10 come parametro usando fun_ptr
        (*fun_ptr)(10);
    
        //definisco una macro per non avere troppi * in giro
        #define nuf (*fun_ptr) 
    
        //chiamo la funzione ridefinita senza dover dereferenziare direttamente il puntatore
        nuf(11);
    
      
        return 0;
    }
    O anche si può usare per passare parametri di cui non si conosce il tipo
Devi accedere o registrarti per scrivere nel forum
3 risposte