Visual C++ errore C2143: errore di sintassi: manca ‘)’ prima ‘costante’

Ricevo un errore in Visual C++ che mi dà un momento davvero difficile.

L’errore è errore c2143 lettura: errore di sintassi: manca ‘)’ prima ‘costante’

La mia riga di codice è:

coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) 2 * depth); 

Ho #include all’inizio del file che deve definire il piano(doppio) funzione.

un po ‘ di più la spiegazione delle variabili.

doppia profondità è una variabile membro della classe che questa linea può essere trovato in.

int i, un incremento di valore di indice.

doppia t è un valore di incremento.

Quello che fanno è davvero importante, ma volevo precisare che tutti e tre sono già definiti come variabili di tipi di base.

Ho vissuto e verificato che tutte le parentesi corrispondono. Io sono un po ‘ in perdita quanto a che cosa ‘costante’ il compilatore fa riferimento. Tutte le idee?

OriginaleL’autore Rich | 2009-04-06

6 risposte

  1. 6

    Io non sono molto sicuro se questo è lo stesso errore che il compilatore ti dà, ma dovete mettere un ‘*’ il segno nella parte anteriore del secondo ‘2’, in modo che questo:

    coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) 2 * depth);

    Diventa questo:

    coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) * 2 * depth);
    Ah, sciocco me. Può essere difficile vedere gli errori semplici senza un secondo paio di occhi. Grazie.

    OriginaleL’autore DeadHead

  2. 6

    Altri manifesti hanno mostrato l’errore effettivo nell’istruzione, ma per favore, split che in più sub-consolidato che più mostrano chiaramente che cosa si sta cercando di fare matematicamente, perché tale funzione sta per causare mal di testa in futuro se non si!

    in alternativa potrebbero semplificare l’espressione, supponendo che l’operatore mancante è supposto per essere un due quindi questo è un buon inizio.. 1 + (t – a pavimento( t + 0.5 )) * 2 * profondità
    Che (t-a pavimento(t+0.5)) sembra una sotto-espressione che ha bisogno di qualche spiegazione per me.

    OriginaleL’autore Joris Timmermans

  3. 5
    coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) (the problem is here) 2 * depth);

    OriginaleL’autore Maurice Perry

  4. 2

    Anche se si ha la risposta giusta, ho intenzione di spiegare come si sia arrivato a questo.

    Quando si è di fronte con un errore in una lunga espressione che non si può trovare, prendere l’espressione a parte, pezzo per pezzo, fino a che non la trovi.

    In questo caso:

    coefficient[i] = (1 - (2 * depth)) + ((t - floor( t + 0.5 ) + 1 ) 2 * depth);

    diventa:

    firsthalf = (1 - (2 * depth));
    secondhalf = ((t - floor( t + 0.5 ) + 1 ) 2 * depth);   //Error appears on this line
    coefficient[i] = firsthalf + secondhalf;

    In questo modo si elimina la prima parte, come l’origine dell’errore.

    Prossimo tentativo:

    exprA = (t - floor( t + 0.5 ) + 1 );
    exprB = exprA * 2;
    exprC = exprB * depth;   //Hmm.... this all worked.  Start putting it back together.
    secondhalf = exprC;

    Ultimo tentativo:

    exprA = (( MY_TEST_CONSTANT ) 2 * depth);   //Error now becomes obvious.

    OriginaleL’autore abelenky

  5. 1

    coefficiente[i] = (1 – (2 * profondità)) + ((t – a pavimento( t + 0.5 ) + 1 ) 2(Che è 2 a fare qui?) * profondità);

    OriginaleL’autore Shree

  6. 1

    Ho affrontato un simile errore quando si dichiara un enum. Era perché uno dei enum costanti è stato dichiarato anche altrove nel codice.

    OriginaleL’autore Pramod

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *