• Obin@feddit.org
    link
    fedilink
    arrow-up
    20
    ·
    edit-2
    4 months ago

    You mean ‘unnamed’ is what’s confusing you?

    Normally you can do anonymous struct/union members or struct struct/union members that are tagged structs but not anonymous.

    I.e. in standard C you’d have to do either:

    struct foo { int baz; };
    struct bar { struct foo foo; };
    ...
    struct bar data;
    data.foo.baz = 0;
    

    or:

    struct bar { struct {  int baz; } foo; };
    ...
    struct bar data;
    data.baz = 0;
    

    but to do the following, you’d need the extension:

    struct foo { int baz; };
    struct bar { struct foo; };
    ...
    struct bar data;
    data.baz = 0;
    
    • mina86@lemmy.wtf
      cake
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      4 months ago

      Minor correction: Unnamed structs and unions (so your second example) are not part of C. They are GNU extensions.