C99 Estrutura Inicializadores Designados e outros valores

Estou ciente de que no C99 você pode inicializar membros da estrutura usando o nome do membro da seguinte maneira:

struct myStruct
{
 int i;
 char c;
 float f;
};

Então, o seguinte é válido:

struct myStruct m = {.f = 10.11, .i = 5, .c = 'a'};

Diz-se também que membros não inicializados serão definidos como0. assim

struct myStruct m = {.f = 10.11, .c = 'a'};

aquii será definido como0

Mas, pelo seguinte:

struct myStruct m = {.f = 10.11, .c = 'a', 6}; 

i ainda é inicializado como 0. Qual é o motivo se fizermos essa inicialização composta.