Warning in c

di il
2 risposte

Warning in c

Salve, ho un piccolo dubbio. Ho fatto questo piccolo programmino per esercitarmi un pò:
#include <stdio.h>


int main(void)

{

    int vettore[5];

    int i;



    for(i=0;i<5;i++)

    {

        printf("\nInserisci l'elemento numero %d :  ",i+1);

        scanf("%d",&vettore[i]);

    }

    printf("\nEcco il vettore ricavato:\n");

    for(i=0;i<5;i++)

        printf("\nelemento %d: %d\n",i+1,vettore[i]);

    

    printf("\n\n\n--------------------------------------------------\n\n\n");

        printf("Ora cambiamo il primo elemento del vettore : era %d, ora diventa :   ",vettore[0]);

    scanf("%d",&vettore[0]);


    printf("\nEcco il vettore aggiornato:\n");

    for(i=0;i<5;i++)

        printf("\nelemento %d: %d\n",i+1,vettore[i]);


return(0);

}

Mandandolo in esecuzione, non ci sono problemi, il programma funziona ma compaiono 2 warning uguali, 1 per ogni scanf :


vettore.c:12:6: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]

scanf("%d",&vettore);

^~~~~~~~~~~~~~~~~~~~~~~

vettore.c:20:2: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]

scanf("%d",&vettore[0]);


Cosa significano, e c'è un modo per "risolverli" così da non farli comparire?

2 Risposte

  • Re: Warning in c

    La funzione scanf() possiede un valore di ritorno che coincide con il numero di oggetti letti con successo. Per maggiori dettagli dai un'occhiata qui:
    https://digilander.libero.it/uzappi/C/librerie/funzioni/scanf.html
    I warning ipotizzo siano dovuti al fatto che non utilizzi il valore ritornato dalla funzione. In ogni caso puoi tranquillamente ignorarli o al massimo potresti provare a disattivarli modificando le impostazione del compilatore relative ai warning (in pratica disattivi i flag attivi uno alla volta per capire qual è quello che li genera).

    P.S.
    Modificando il codice nel seguente modo i warning dovrebbero scomparire:
    #include <stdio.h>
    
    
    int main(void)
    
    {
    
        int vettore[5];
    
        int i;
    
    
    
        for(i=0;i<5;i++)
    
        {
    
            printf("\nInserisci l'elemento numero %d :  ",i+1);
    
            int a = scanf("%d",&vettore[i]);
    
        }
    
        printf("\nEcco il vettore ricavato:\n");
    
        for(i=0;i<5;i++)
    
            printf("\nelemento %d: %d\n",i+1,vettore[i]);
    
        
    
        printf("\n\n\n--------------------------------------------------\n\n\n");
    
            printf("Ora cambiamo il primo elemento del vettore : era %d, ora diventa :   ",vettore[0]);
    
        int a = scanf("%d",&vettore[0]);
    
    
        printf("\nEcco il vettore aggiornato:\n");
    
        for(i=0;i<5;i++)
    
            printf("\nelemento %d: %d\n",i+1,vettore[i]);
    
    
    return(0);
    
    }
    Fammi sapere.
  • Re: Warning in c

    Puoi impostare il flag

    -Wno-unused-result
Devi accedere o registrarti per scrivere nel forum
2 risposte