Re: c initialization algorithm

Liste des GroupesRevenir à cl c  
Sujet : Re: c initialization algorithm
De : thiago.adams (at) *nospam* gmail.com (Thiago Adams)
Groupes : comp.lang.c
Date : 15. Oct 2024, 12:14:46
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <velir6$1m8c1$2@dont-email.me>
References : 1 2 3 4 5
User-Agent : Mozilla Thunderbird
On 15/10/2024 08:12, Thiago Adams wrote:
On 14/10/2024 08:14, Thiago Adams wrote:
On 14/10/2024 02:00, Tim Rentsch wrote:
Kaz Kylheku <643-408-1753@kylheku.com> writes:
>
On 2024-10-13, Thiago Adams <thiago.adams@gmail.com> wrote:
>
The algorithm for C initialization as described in the standard
and implemented in gcc allow this.
>
struct X{
      int a,b,c;
};
>
int main()
{
      struct X x = {.a=1,2,3,.a=1, 2, 3};
}
>
https://godbolt.org/z/7naedbEM6
>
Basically, when a designed initializer is found the "cursor" goes
to that member and the following members are initialized in
order.
>
  I do not suspect that therw is an observable order.  I.e. as
  in a required order considered observable behavior.
>
Have you checked to C standard to see what it says about that?
 I'm not only interested in this part, but since it raised some doubts, I decided to do some checks
 #include <stdio.h>
 struct X {
     int i;
};
 int f() {
     printf("f");
     return 1;
}
 int main() {
     struct X x = {.i = f(), .i = f() };
}
 https://godbolt.org/z/rf984cGMM
 There is a warning in this sample and f is called just once.
  
Forgot to say that I didn't find this part on the standard.
I think initialization is also very superficial on books.

Date Sujet#  Auteur
13 Oct 24 * c initialization algorithm7Thiago Adams
14 Oct 24 `* Re: c initialization algorithm6Kaz Kylheku
14 Oct 24  `* Re: c initialization algorithm5Tim Rentsch
14 Oct 24   `* Re: c initialization algorithm4Thiago Adams
15 Oct 24    `* Re: c initialization algorithm3Thiago Adams
15 Oct 24     `* Re: c initialization algorithm2Thiago Adams
15 Oct 24      `- Re: c initialization algorithm1Kaz Kylheku

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal