2014-02-20 75 views
0

如何初始化一个包含其内部结构定义的结构?c中的结构初始化

例:

struct foo{ 
    struct foo1{ 
     int a; 
     int b; 
     int c; 
    } abc; 
} xyz; 
+0

你如何初始化一个简单的结构? –

回答

3

与现代的C,最简单的是指定的初始化

struct foo xyz = { .abc = { .a = 56, } }; 

但要注意C没有嵌套类型,你foo1也是一个全球性的类型。

通常人们倾向于从变量声明和定义中分离出这样的类型声明,首先是foo1,然后是foo

+0

我只是期待这个答案..非常感谢 –

0

@JensGustedt显示了现代C的好方法。旧的学校C的方式将是:

struct foo xyz = { { 1, 2, 3 } }; /* sets a, b, c to 1, 2, 3, respectively */ 
struct foo xyz = { { 1 } };   /* just sets the member "a" to 1