2009-04-06 75 views
3

Visual C++でエラーが発生しました。Visual C++エラーC2143:構文エラー: '定数'の前に ')'がありません

エラーはエラーC2143の読み取りです:構文エラー:見つからない「)」「定数」前

私のコード行は、次のとおりです。私は、ファイルの先頭に#includeしている

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

いるはずfloor(double)関数を定義します。

もう少し変数の説明。

double depthは、この行が見つかるクラスのメンバー変数です。
int iは増分インデックス値です。
double tは増分値です。

彼らのしていることは本当に重要ではありませんが、私は3つすべてがすでに基本型の変数として定義されていることを明確にしたかったのです。

すべての括弧が一致していることを確認しました。私は、コンパイラが何を指しているのかについて「矛盾しています。何か案は?

答えて

6

私は、これはコンパイラがあなたを与えているのと同じエラーであればかなりわからないんだけど、2番目の「2」となるよう、この目の前に「*」印を入れてあります。

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

は、このようになります。

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

ああ、愚かな私。 2番目の目がなければ簡単なミスを見るのは難しいかもしれません。ありがとう。 – Rich

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

係数[I] =(1 - (2 *深さ))+((T - 床(T + 0.5)+ 1)2(2は何をしているのですここ?) *深さ);

6

他のポスターは実際のエラーを示していますが、数学的に何をしようとしているのかをより明確に示す複数のサブステートメントに分割してください。あなたがしなければ未来!

+0

代わりに、欠落した演算子が2であると仮定して式を単純化することができます。 1 +(t - floor(t + 0.5))* 2 *奥行き –

+0

これは(t-floor (t + 0.5))は、私に何らかの説明が必要な部分式のように見えます。 –

2

正しい答えがあっても、どのように到着すべきかを説明します。

見つからない長い表現のエラーに直面するときは、それを見つけるまで、表現を1つずつ分けてください。この場合

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

は次のようになる。

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

これはエラーのソースとして最初の部分を排除します。

次の試み:

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

最後の試み:

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

列挙型を宣言するとき、私は同様のエラーに直面しました。 enum定数の1つがコード内の他の場所でも宣言されたためです。

関連する問題