2014-02-20 13 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