我正在尝试学习 C,但遇到了一些奇怪的事情:
struct
{
int i;
double j;
} x, y;
struct
{
int i;
double j;
} z;
在这里,你可以看到我创建了两个struct
其元素相同。
为什么当我尝试分配时x = z
它将产生编译错误,但是x = y
才不是?它们具有相同的内容,那么为什么我不能将它们来回分配呢?
有什么办法可以做到这一点,这样我can assign x = z
?或者它们只是必须相同struct
.
任何 C 专家都可以为我指出正确的方向吗?
它们具有相同的内容,但类型不同。如果它们是同一类型,只需typedef x z;
。如果它们不是同一件事,但恰好包含相同的字段,那么最好创建一个单独的函数来正确分配字段。
我在 C 中声明结构的常用风格包括 typedef,所以我忘了提及它(抱歉!)。语法如下:
typedef struct
{
int foo;
double bar;
} x;
/* Further down, if needed */
typedef x z;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)