Quando scrivo immediatamente
codice:
struct a {
int b;
} Ciao;//Ciao viene dichiarato come variabile globale
Globale vuol dire acessibile da tutto il file(anche da eventuali altri file volendo.. ma è un altro discorso)
Sarà subito disponibile una variabile di tipo a chiamata Ciao, quindi non sarà necessario dichiararla:
codice:
struct a Ciao;//non serve, Ciao è già dichiarato su come globale
Scusa se ho tiranto in ballo la programmazione orientata aggli oggetti, pensavo che la conoscevi. Se non la sai lascia perdere sennò fai confusione con la programmazione modulare(quella del C che stai studiando, orientata ai dati e alle funzioni).
Se non hai ancora capito a cosa serve una struttura, ti faccio un esempio completo:
codice:
#include <string.h>
#include <stdio.h>
#include <malloc.h>
struct Giocatore {
char* nome;
int eta;
int numero;
int isAmmonito;
int isInjured;
//ecc...
};
struct Squadra {
struct Giocatore* estremo;
//ecc...
} Milan;
int main(void) {
struct Giocatore* g = malloc(sizeof(struct Giocatore));//credo sia così ora non ricordo
strcpy(g->nome, "Dida");
g->eta = 25;//sparato a caso
g->numero = 1;
g->isAmmonito = 0;
g->isInjured = 1;
Milan.estremo = g;
printf("%s\n", Milan.estremo->nome);
printf("%d\n", Milan.estremo->eta);
printf("%d\n", Milan.estremo->numero);
if(Milan.estremo->isAmmonito) printf("%s\n", "E' ammonito");
if(Milan.estremo->isInjured) printf("%s\n", "E' infortunato");//(magari)
return 0;
}
Il programma l'ho provato e funziona(anche se non capisco va solo se compilato a debug), se hai dubbi sulle strutture chiedi pure.