Tipi incompletiIncomplete Types

Un tipo incompleto è un tipo che descrive un identificatore, ma non dispone delle informazioni necessarie per determinare la dimensione dell'identificatore.An incomplete type is a type that describes an identifier but lacks information needed to determine the size of the identifier. Un tipo incompleto può essere uno degli elementi seguenti:An "incomplete type" can be:

  • Tipo di struttura i cui membri non sono ancora stati specificati.A structure type whose members you have not yet specified.

  • Tipo di unione i cui membri non sono ancora stati specificati.A union type whose members you have not yet specified.

  • Tipo di matrice le cui dimensioni non sono ancora state specificate.An array type whose dimension you have not yet specified.

    Il tipo void è un tipo incompleto che non può essere completato.The void type is an incomplete type that cannot be completed. Per completare un tipo incompleto, specificare le informazioni mancanti.To complete an incomplete type, specify the missing information. Negli esempi seguenti viene illustrato come creare e completare i tipi incompleti.The following examples show how to create and complete the incomplete types.

  • Per creare un tipo di struttura incompleto, dichiarare un tipo di struttura senza specificare i relativi membri.To create an incomplete structure type, declare a structure type without specifying its members. In questo esempio il puntatore ps punta a un tipo di struttura incompleto denominato student.In this example, the ps pointer points to an incomplete structure type called student.

    struct student *ps;  
    
  • Per completare un tipo di struttura incompleto, dichiarare successivamente lo stesso tipo di struttura nello stesso ambito con i relativi membri specificati, come illustrato di seguito:To complete an incomplete structure type, declare the same structure type later in the same scope with its members specified, as in

    struct student  
    {  
        int num;  
    }                   /* student structure now completed */  
    
  • Per creare un tipo di matrice incompleto, dichiarare un tipo di matrice senza specificare il numero di ripetizioni relativo.To create an incomplete array type, declare an array type without specifying its repetition count. Ad esempio:For example:

    char a[];  /* a has incomplete type */  
    
  • Per completare un tipo di matrice incompleto, dichiarare successivamente lo stesso nome nello stesso ambito con il numero di ripetizioni specificato, come illustrato di seguito:To complete an incomplete array type, declare the same name later in the same scope with its repetition count specified, as in

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

Vedere ancheSee Also

Dichiarazioni e tipiDeclarations and Types