我在 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);
它有效,但我仍然不明白为什么。