Variable set but not used

di il
2 risposte

Variable set but not used

Salve ragazzi sto avendo problemi con quest esercizio
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define OUTFILE "marcacc2.dat"
#define m (24)

double funz (double x);

int main (void) {
    
    FILE *fp;
    int i;
    double a,b,h, y[m+1], x[m+1];
    
    if ((fp=fopen(OUTFILE,"w"))== NULL) {
        (void) fprintf (stderr,"non si apre: %s !\n",OUTFILE);
        return EXIT_FAILURE; }
        
        fprintf(fp,"marcaccini andrea \n0000733841 \nsigla esercizio \n");
    
    a=-3;
    b=3;
    h=(b-a)/m;
    
    for  (i=0;i<=m;i++) {
        x[i]=a+i*h;
        y[i]=funz(x[i]); }
        fprintf(fp,"Intervallo: [a,b] = [%.2f,%.2f] \n",a,b);
        fprintf(fp,"Suddivisioni: %2d; Passo: %.8f \n\n",m,h);
        
    
    
    
    
    return EXIT_SUCCESS; }
    
    double funz (double x)  {
        double y;
       if (x < -2. || x >= 2.)
           y = 3./5.;
       else if (x > 0. && x < 2.)
           y = 9.*cos(x)/5. - 2.*log(x+1.);
       else
           y = 4.*sin(x)/7. - 2.*x*(x-1.)/3.;
       return y; }
                    
        
il problema che mi da è questo
warning: variable ‘y’ set but not used [-Wunused-but-set-variable]
     double a,b,h, y[m+1], x[m+1];
non capisco che significhi,io y l ho messa e pure dichiarata, qualcuno sa darmi una mano? grazie in anticipo

2 Risposte

  • Re: Variable set but not used

    Non ho problemi con altri compilatori. Sembra un bug

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6654
  • Re: Variable set but not used

    Il compilatore ha ragione. Dice:

    e' stato assegnato un valore alla variabile y (il vettore, NON l'altra y), ma non viene usato

    Cioe': dei valori vengono scritti nel vettore y, ma non vengono mai letti, quindi, A CHE SERVE?

    @oregon: anche il link che hai indicato ha ragione.

    Se ci ragioni, decltype(f()) NON CHIAMA la funzione f, ma la usa SOLO per dedurne il tipo. Siamo nella fase di deduzione dei tipi, nemmeno nella generazione del codice.
    in pratica, la funzione e' definita, ma non la chiama nessuno. Da cui la segnalazione.

    Che poi questo non piaccia, e' un'altro discorso.
Devi accedere o registrarti per scrivere nel forum
2 risposte