• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Struct w Struct C

0 głosów
247 wizyt
pytanie zadane 15 maja 2018 w C i C++ przez jankowa1ski Gaduła (3,560 p.)

Mam taki kod


typedef struct elem{

    
    struct ins{
        int nr;
    }ins;//<- o to chodzi

}elem;

i kod działa ale tylko wtedy gdy po tej wewnetrzej strukturze o nazwie ins dam ins; Dlaczego? Myślałem że tu daje alias dla struktury ale tylko gdy uzywam typedef. Dlaczego wywala mi blad gdy w tym wypadku tego nie dam?

Dzieki za kazda odpowiedź

1 odpowiedź

0 głosów
odpowiedź 15 maja 2018 przez RafalS VIP (122,780 p.)
edycja 15 maja 2018 przez RafalS
Kompilator w ciele struktury szuka skladowych. Jesli dasz mu sama deklaracke typu nowej struktury to dostaniesz warning, ze ta deklaracja niczego (skladowej) nie deklaruje. Gdy razem z deklaracja typu dostanie składowa tego typu to błędu nie będzie. Kompilator nie jest na tyle mądry żeby domyślić się co chciałeś zrobić.
komentarz 15 maja 2018 przez RafalS VIP (122,780 p.)
A generalnie to nie widze sensu deklarowania struktury w strukturze. I tak wyjdzie na to samo gdybys deklarowal obydwie globalnie i po prostu w jednej zrobil pole typu drugiej.

Podobne pytania

0 głosów
1 odpowiedź 372 wizyt
pytanie zadane 15 grudnia 2019 w C i C++ przez user124 Nowicjusz (210 p.)
0 głosów
2 odpowiedzi 214 wizyt
pytanie zadane 19 sierpnia 2016 w C i C++ przez Maciek123233 Gaduła (3,400 p.)
0 głosów
2 odpowiedzi 788 wizyt
pytanie zadane 6 czerwca 2023 w C i C++ przez Daaa22 Dyskutant (8,250 p.)

93,728 zapytań

142,668 odpowiedzi

323,283 komentarzy

63,287 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...