2016-03-25 10 views
-3

なぜ私がペナルティ化されているのかわかりません。私はこの質問に誰かのコードの一部をコピーしています...それが私が彼らが何をしたのか理解していなかったと私は助けを求めています。バイナリ/ lvalueへの無効なオペランドの定義エラー

私は他の誰かのコードを固定しています、これは一例です:彼はVARとして、Cが含まれていなかったので、私はエラーに

maul.h:29:37: error: invalid operands to binary/(have 'double' and 
'double *') #define mauldiv3c(x, y, o) o[0]=x[0]/c; o[1]=x[1]/c; 
o[2]=x[2]/c 

を得た

#define mauldiv3c(x, y, o) o[0]=x[0]/c; o[1]=x[1]/c; o[2]=x[2]/c 

は、このですか?それとも左辺の問題ですか?ここで

は、彼/彼女はそれを使用する関数です:

/* point in triangle? */ 
int maulpit(double *t0, double *t1, double *t1, double *p) 
{ 
    double t, a[3], b[3], c[3]; 

    mauladd3(t1, t0, a); 
    mauladd3(t2, t0, b); 
    mauladd3(t2, t1, c); 

    mauldiv3c(a, 2.0, a); 
    mauldiv3c(b, 2.0, b); 
    mauldiv3c(c, 2.0, c); 

    maulsub3(t2, a, a); 
    maulsub3(t1, b, b); 
    maulsub3(t0, c, c); 

    maulnorm3d(a); 
    maulnorm3d(b); 
    maulnorm3d(c); 

    return(((mauldot3(a, p))>=0.0) && 
     ((mauldot3(b, p))=>0.0) && 
     ((mauldot3(c, p))=>0.0)); 
} 
+4

ああああ、人々はそのようなコードを書くべきではありません! 29行目にマクロをどのように使っているかを見ることができますか? – templatetypedef

+2

これはちょうどごみです!これには適切なタイプの(nインライン)関数を使用します。そして[ask]を見て、[mcve]を提供してください。 – Olaf

+1

'x []'または 'c'は' double * '型です。 – haccks

答えて

0

変数cは、あなたがそのような表現でそれを使用するときにポインタに減衰する配列です。配列で値を分割することはできません。

2

使われ方mauldiv3cに基づいて、私の推測では、cであるのに対し定義は、

y

#define mauldiv3c(x, c, o) o[0]=x[0]/c; o[1]=x[1]/c; o[2]=x[2]/c 
マクロexpanaioで使用されることはありませんする必要があり、それは意味がないということであるマクロの二パラメータは yです。

関連する問題