Tipos incompletos
Um tipo incompleto é um tipo que descreve um identificador, mas não tem as informações necessárias para determinar o tamanho do identificador.Um "tipo incompleto" pode ser:
Um tipo de estrutura cujos membros ainda não foi especificado.
Um tipo de união cujos membros ainda não foi especificado.
Um tipo de matriz cuja dimensão ainda não foi especificado.
O tipo void é um tipo incompleto que não pode ser concluído.Para concluir um tipo incompleto, especifique as informações que faltam.Os exemplos a seguir mostram como criar e concluir os tipos de incompletos.
Para criar um tipo de estrutura incompleta, declare um tipo de estrutura sem especificação de seus membros.Neste exemplo, o ps pontos de ponteiro para um tipo de estrutura incompleta chamados student.
struct student *ps;
Para concluir um tipo de estrutura incompleta, declara o mesmo tipo de estrutura mais tarde no mesmo escopo com seus membros especificados, como em
struct student { int num; } /* student structure now completed */
Para criar um tipo de matriz incompleta, declare um tipo de matriz sem especificar sua contagem de repetição.Por exemplo:
char a[]; /* a has incomplete type */
Para concluir um tipo de matriz incompleta, declara o mesmo nome mais tarde no mesmo escopo com sua contagem de repetição especificada, como em
char a[25]; /* a now has complete type */