Question

Je reçois une erreur dans Visual C ++ qui me donne vraiment du mal.

L'erreur est une lecture erreur C2143: erreur de syntaxe: manquant ')' avant 'constante'

Ma ligne de code est:

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

Je #inclure au début du fichier qui doit définir la fonction sol (double).

un peu plus d'explications des variables.

à double profondeur est une variable membre de la classe de cette ligne se trouve dans.
int i est une valeur d'index incrémenter.
Double T est une valeur d'incrémentation.

Ce qu'ils font est vraiment sans importance, mais je voulais préciser que tous les trois sont déjà définis comme des variables de types de base.

Je suis passé par et vérifié que toutes les parenthèses correspondent. Je suis un peu à perte à ce que « constante » le compilateur fait référence. Toutes les idées?

Était-ce utile?

La solution

Je ne suis pas tout à fait sûr que ce soit la même erreur que le compilateur vous donne, mais vous devez mettre un « * » signe devant la seconde « 2 » de telle sorte que celle-ci:

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

Devient ceci:

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

Autres conseils

D'autres affiches ont montré que vous l'erreur réelle dans la déclaration, mais s'il vous plaît, diviser ce en sous-déclarations multiples que plus montrent clairement ce que vous essayez de faire mathématiquement, car cette fonction va vous causer des maux de tête à l'avenir si vous ne le faites pas!

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

Même si vous avez la bonne réponse, je vais vous expliquer comment vous auriez dû arriver à elle.

Face à une erreur dans une longue expression que vous ne pouvez pas trouver, prendre l'expression à part, morceau par morceau, jusqu'à ce que vous le trouverez.

Dans ce cas:

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

devient:

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

Ceci élimine la première partie comme source de l'erreur.

tentative suivante:

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

L'ultime tentative:

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

coefficient [i] = (1 - (2 * profondeur)) + ((t - sol (t + 0,5) + 1) 2 (Qu'est-ce 2 font ici) * profondeur) ;

Je fait face à une erreur similaire lors de la déclaration d'un ENUM. Ce fut parce que l'une des constantes de ENUM a également été déclaré ailleurs dans le code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top