Поделиться через


Неполные типы

Неполный тип — это тип, который описывает идентификатор, но не содержит информацию, необходимую для определения размера идентификатора. Неполным типом может быть:

  • Тип структуры, для которой еще не были определены члены.

  • Тип объединения для которого еще не были определены члены.

  • Тип массива, для которого еще не были определены размерности.

Тип void является неполным типом, который невозможно сделать полным. Чтобы дополнить неполный тип, укажите отсутствующие данные. В следующих примерах показано, как создать и дополнить неполные типы.

  • Чтобы создать неполный тип структуры, объявите тип структуры, не указывая ее члены. В этом примере указатель ps указывает на неполный тип структуры с именем student.

    struct student *ps;
    
  • Чтобы дополнить неполный тип структуры, объявите тот же самый тип структуры ниже в той же самой области видимости и задайте его члены, как в следующем примере:

    struct student
    {
        int num;
    }                   /* student structure now completed */
    
  • Чтобы создать неполный тип массива, объявите тип массива, не указывая для него число повторений. Например:

    char a[];  /* a has incomplete type */
    
  • Чтобы дополнить неполный тип массива, объявите то же самое имя ниже в той же самой области видимости и задайте его число повторений, как в следующем примере:

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

См. также

Объявления и типы