我一直在努力尝试编写一个适当#define
的类似函数的宏,但被卡住了。这是我正在使用的示例:
#include <iostream>
#define pMAKE(x,y,z,dest)\
(dest).(x) = (x);\
(dest).(y) = (y);\
(dest).(z) = (z);
struct pt {
double x, y, z;
};
int main() {
pt p;
pMAKE(0,1,2,p);
return 0;
}
我得到的错误是:
A.cpp: In function ‘int main()’:
A.cpp:13: error: expected unqualified-id before ‘(’ token
A.cpp:13: error: expected unqualified-id before ‘(’ token
A.cpp:13: error: expected unqualified-id before ‘(’ token
这些错误是什么意思,为什么我会得到它们?我设法让以下内容按照我想要的方式工作,但老实说,我很幸运,我真的不明白发生了什么。
#define pMAKE(X,Y,Z,dest)\
dest.x = (X);\
dest.y = (Y);\
dest.z = (Z);
我感谢每一点帮助!