2015-01-07 6 views
-1

У меня есть exercice, что я должен реализовать структуру, чтобы соответствовать этой линии в CВложенные структуры с тем же именем в C

int main() { 
    t_foo foo; 
    foo.foo.foo = 0; 
    return (0); 
} 

Я попытался создать вложенную структуру, но я не могу создать с одно и то же имя. У вас есть идея?

+1

Почему бы тебе не показать нам свою попытку? – NPE

+1

Вы не можете вложить (или переопределить) один и тот же тип struct *, но вы можете иметь член с тем же именем. – Dmitri

ответ

3
struct a 
{ 
    int foo; 
}; 

struct c 
{ 
    int d; 
    struct a foo; 
}; 

int main(void) 
{ 
    struct c foo; 

    foo.foo.foo = 2; 
    printf("%d\n",foo.foo.foo); 

    return 0; 
} 
1

Например, вы можете сделать это следующим образом

#include <stdio.h> 

typedef struct foo 
{ 
    struct 
    { 
     int foo; 
    } foo; 
} t_foo; 


int main(void) 
{ 
    t_foo foo; 
    foo.foo.foo = 0; 

    printf("%d\n", foo.foo.foo); 

    return 0; 
} 

Или

#include <stdio.h> 

typedef struct 
{ 
    struct foo 
    { 
     int foo; 
    } foo; 
} t_foo; 


int main(void) 
{ 
    t_foo foo; 
    foo.foo.foo = 0; 

    printf("%d\n", foo.foo.foo); 

    return 0; 
} 
Смежные вопросы