C で次の構造体を定義しました。
typedef struct point{
float x;
float y;
float z;
} Point;
typedef Point Vector;
および次のマクロ:
#define sub(p1,p2) {p1.x-p2.x,p1.y-p2.y,p1.z-p2.z}
これは次のように使用されます。
void fun(Point p0, Point p1){
Vector u;
u=sub(p1,p0);
}
私が読んだことから、これはうまくいくはずです。あるいは、おそらく明らかな何かが欠けているかもしれません...しかし、私が何をすべきか理解していないという次のエラーが表示されます:
error: expected expression before '{' token
したがって、基本的には次と同じものを取得したいだけです:
struct point u={p1.x-p0.x,p1.y-p0.y,p1.z-p0.z}
何が間違っているのか本当にわかりません...ありがとう。
[編集] いくつかの関数の詳細が含まれているため、私の間違いがどこにあると思われるかがわかります。変更後のため、変数宣言で初期化していません
Vector u;
u=sub(p1,p0);
に
Vector u=sub(p1,p0);
動作しますが、理由はまだわかりません。