[bglug] Domanda C

Alessandro Pasta bglug@lists.linux.it
Sat, 1 Feb 2003 12:45:41 +0100


> - niente nomi riservati, es. for, if (alcuni linguaggi consentono certi
> tipi di identificatori riservati a tuo rischio e pericolo)
> - il primo carattere deve essere una lettera o un underscore: quindi
> niente 12ciao ma puoi fare _ciao
> - case sensitive, quindi Ciao != ciao != CIAO
> - gli identificatori possono avere una lunghezza qualsiasi ma solo i
> primi 31 caratteri sono significativi (può dipendere
> dall'implementazione ma in genere è cosi).
> - niente spazi nei nomi di variabili

tutte le regole nella definizione sono rispettate...
a parte l'underscore all'inizio del nome.
Il listato è questo:

typedef struct Automobile
{
 char CasaProduttrice[l_CasaProduttrice];
 char Modello[l_Modello];
 char Versione[l_Versione];
 char PrezzoBase[l_PrezzoBase];
 struct DotazioniSerie *DotazioniSerieTesta;
 struct DotazioniOptional *DotazioniOptionalTesta;
 struct Automobile *Next;
 int FiltroCasaProduttrice;
 int FiltroModello;
}Automobile;

typedef struct DotazioniSerie
{
 char DotazioniSerie[l_DotazioniSerie];
 struct DotazioniSerie *Next;
}DotazioniSerie;

typedef struct DotazioniOptional
{
 char DotazioniOptional[l_DotazioniOptional];
 char PrezzoDotazioniOptional[l_PrezzoDotazioniOptional];
 struct DotazioniOptional *Next;
 int FiltroOptional; //Flag di selezione per filtrare l'output (0= non
selezionato)
}DotazioniOptional;

[cut]

int main()

 Automobile *PuntatoreAuto;
 Automobile *TestaAuto=NULL;

 DotazioniSerie *PuntatoreSerie;
 DotazioniSerie *TestaSerie=NULL;

 DotazioniOptional *PuntatoreOptional;
 DotazioniOptional *TestaOptional=NULL;

Il compilatore mi dà errore sulla definizione delle variabili puntatori di
tipo Doatzioni... e non su Automobile.
L'errore è "Cant define a variable type" o qualcosa del genere (ora non
ricordo bene)
Cmq ho provato a cambiare tutte le dotazioni... in dotazion (cancellato la
i) e il compilatore non dava più problemi.
Ora secondo voi e verificata la mia ipotesi che il compilatore riconosca le
sole prime 8 lettere del nome varibile o ci sono altri problemi?

Grazie mille

Ciao
Alessandro Pasta
ales.pasta@galactica.it

"Ciao sono Pastus e reco il bastus
del sapere mio che è vastus"