几个结构和多个结构的C联合

时间:2011-03-28 16:48:28

标签: c

您好我正在寻找一个包含多个结构和多个结构的联合。下面是我想要实现的一个简短例子。

创建联盟宇宙,其中星系和行星是结构......

union UNIVERSE{
    struct galaxy milkway;
    struct planet earth;
    struct planet mars;
    struct planet venus;
    int mega;
}

1 个答案:

答案 0 :(得分:3)

你已经大致完成了你想要的东西,但我要提醒你,你似乎想做的事情没有多大意义。

特别是地球,火星和金星看起来很像它们应该是一种类型的实例。 union定义了一个类型,所以你可能需要像

这样的东西
typedef union { 
    galaxy g; 
    star s; 
    planet p; 
    nebula n;
} celestial_object;

个别星系,行星,恒星等将是该联盟的实例。然后你可以(例如):

#define max_objects 1000000

celestial_object universe[max_objects];

celestial_object earth;
earth.p.mass = 24;
earth.p.diameter = 12756;

celestial_object sun;
sun.s.mass = 30;
sun.s.diameter = 1400000;

......等等。