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 você ainda não especificou.

  • Um tipo de união cujos membros você ainda não especificou.

  • Um tipo de matriz cuja dimensão você ainda não especificou.

O tipo void é um tipo incompleto que não pode ser concluído. Para concluir um tipo incompleto, especifique as informações ausentes. Os exemplos a seguir mostram como criar e concluir os tipos incompletos.

  • Para criar um tipo incompleto de estrutura, declare um tipo de estrutura sem especificar seus membros. Neste exemplo, o ponteiro ps aponta para um tipo incompleto de estrutura chamado student.

    struct student *ps;
    
  • Para concluir um tipo incompleto de estrutura, declare o mesmo tipo de estrutura posteriormente no mesmo escopo com seus membros especificados, como em

    struct student
    {
        int num;
    }                   /* student structure now completed */
    
  • Para criar um tipo incompleto de matriz, declare um tipo de matriz sem especificar sua contagem de repetições. Por exemplo:

    char a[];  /* a has incomplete type */
    
  • Para concluir um tipo incompleto de matriz, declare o mesmo nome posteriormente no mesmo escopo com sua contagem de repetições especificada, como em

    char a[25]; /* a now has complete type */
    

Confira também

Declarações e tipos