Perché definire struct in variable?

4

Considera il seguente programma:

Molte persone quando vogliono usare una struct, creano una nuova variabile come:

struct structureName variableName

Mentre funziona quando lo definisci come:

 structureName variableName

Il mio insegnante usa sempre il primo metodo. La mia domanda è come si differenziano? Ho sempre bisogno di specificare struct prima di definire my variableName. Ecco un esempio per spiegare la mia domanda:

struct example {
    int n;
    char c;
};

int main() {
    example o;
    o.c = 'c';
    o.n = 5;
    printf("%c", o.c);
    printf("%d\n", o.n); //this works

    struct example ex; // this versus "example o" without using struct keyword
    ex.c = 'e';
    ex.n = 7;
    printf("%c", ex.c);
    printf("%d", ex.n); //this works

    return 0;
}
    
posta oaksndac 21.12.2014 - 15:09
fonte

1 risposta

5

Questa è una delle differenze tra C e C ++.

In C, i nomi delle strutture sono completamente separati dagli altri nomi e devi usare la parola chiave struct per dire al compilatore di cercare il nome di una struttura.
Un altro modo per dirla è che la parola chiave struct è in realtà parte del nome della struttura.

Durante la progettazione di C ++, questo è stato modificato e l'utilizzo della parola chiave struct (o class ) è stato reso facoltativo quando si fa riferimento a una struttura o una classe.

    
risposta data 21.12.2014 - 15:57
fonte

Leggi altre domande sui tag