Heu, le C99 a définie ca clairement:
struct toto
{
int bla, blo, blu;
};
struct toto tata = { 1, 2, 3 };
struct toto titi = {
.bla = 1,
.blo = 2,
.blu = 3,
};
Maya:Desktop godzil$ cat test.c
struct toto
{
int bla, blo, blu;
};
struct toto tata = { 1, 2, 3 };
struct toto titi = {
.bla = 1,
.blo = 2,
.blu = 3,
};
Maya:Desktop godzil$ clang -Wall -c test.c -o test.o
Maya:Desktop godzil$
Si ton compilateur ne supporte pas ca, tu peux le foutre a la poubelle des non C99 compliant. (et cette facon de faire est la seule officiel, meme GCC a supprimé sa version (moche) antérieur au profit de la version C99