C语言中具有相同名称的嵌套结构

时间:2015-01-07 15:57:44

标签: c nested structure

我有一个练习,我必须实现一个与C

中的这一行相匹配的结构
int main() {
     t_foo foo;
     foo.foo.foo = 0;
     return (0);
}

我尝试创建一个嵌套结构,但我不能用同名创建。你知道吗?

2 个答案:

答案 0 :(得分: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 :(得分: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;
}