Puncte:0

gcc-10 (10.3.0) nu gestionează corect structura anonimă?

drapel br
A L
$ gcc-10 --versiune
gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0

$ test pisica.c
struct A {
    int a;
};

struct B {
    int b;
    structura A;
};

int main(void)
{
    structura B c;
    c.a = 0;
    c.b = 1;
    întoarce 0;
}

$ gcc-10 test.c
test.c:7:13: avertisment: declarația nu declară nimic
    7 | structura A;
      | ^
test.c: În funcția âmainâ:
test.c:13:6: eroare: âstruct Bâ nu are niciun membru numit âaâ
   13 | c.a = 0;
      | ^

Adăugând -std=c17 nu face nicio diferenta. Am verificat (cu -v varianta care cc1 este sunat din locația corectă (/usr/lib/gcc/x86_64-linux-gnu/10/cc1 ). Sursa ar trebui să fie compilată, totuși. gcc 10.2.0 (utilizat pe Cygwin, de exemplu), este perfect capabil să facă față acestui cod:

$ gcc --versiune
gcc (GCC) 10.2.0
$ gcc test.c
$

(fără erori).

Iată ce a fost instalat ca „gcc-10”:

cc-10-base/focal-updates,focal-security,acum 10.3.0-1ubuntu1~20.04 amd64 [instalat,automat]
gcc-10/focal-updates,focal-security,acum 10.3.0-1ubuntu1~20.04 amd64 [instalat]
libgcc-10-dev/focal-updates,focal-security, acum 10.3.0-1ubuntu1~20.04 amd64 [instalat, automat]

Sistemul meu:

$ uname -a
Linux xxx 5.11.0-25-generic #27~20.04.1-Ubuntu SMP Mar 13 iulie 17:41:23 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Orice ajutor va fi foarte apreciat!

Mulțumiri!

galexite avatar
drapel pk
Cred că aceasta este o întrebare pentru StackOverflow, nu pentru AskUbuntu.
Puncte:0
drapel br
A L

Se pare ca -fms-extensii este definit implicit în Cygwin, deci adăugându-l explicit la gcc comanda pe Ubuntu rezolvă problema.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.