在C语言中,我希望能够在结构体内部标记特定的位置。例如:
这样我就可以做到:
struct test {
char name[20];
position:
int x;
int y;
};
这样我就可以做到:
struct test srs[2];
memcpy(&srs[1].position, &srs[0].position, sizeof(test) - offsetof(test, position));
将 srs[0] 的位置复制到 srs[1]。
我尝试过将 position 声明为没有任何字节的类型,但这也没有起作用:
struct test {
char name[20];
void position; //unsigned position: 0; doesn't work either
int x;
int y;
};
我知道我可以将x和y嵌入到另一个名为position的结构体中:
struct test {
char name[20];
struct {
int x;
int y;
} position;
};
或者直接使用x属性的位置:
struct test srs[2];
memcpy(&srs[1].x, &srs[0].x, sizeof(test) - offsetof(test, x));
然而我在想是否有一种方法可以实现我最初的想法。