PDA

View Full Version : [C] Multiple definition of "variabile"


Camill0
16-04-2005, 17:13
Salve a tutti!

1. Apro Dev-C++ (l'ultima versione) e scelgo console application
2. Creo tre file header.h(prototipi), source.c(funzioni) e main.c
3. Scrivo il codice, premo F9 e mi dà l'errore come sopra.



source.c multiple definition of 'indice'
first defined here

Che sarà? Che sarà???
(Inserendo tutto il codice nel main và tranquillo. )

Fenomeno85
16-04-2005, 20:31
non è che hai dichiarato variabile + volte?

~§~ Sempre E Solo Lei ~§~

beppegrillo
16-04-2005, 20:32
Una doppia definizione della variabile globale indice?

71104
16-04-2005, 22:47
Una doppia definizione della variabile globale indice?
più che altro forse una doppia inclusione.
e posta questo codice, va' ;)

PS: alcune buone norme di programmazione C e C++:
1) proteggi sempre i tuoi headers dall'inclusione multipla
2) non dichiarare mai variabili globali in un header! gli headers devono contenere solo prototipi di funzioni, tipi, e direttive di preprocessore
3) non usare mai #include con un sorgente, usala solo con gli headers (giuro che conosco una persona che include i file .c :D)

hakermatik
18-04-2005, 19:10
più che altro forse una doppia inclusione.
e posta questo codice, va' ;)

PS: alcune buone norme di programmazione C e C++:
1) proteggi sempre i tuoi headers dall'inclusione multipla
2) non dichiarare mai variabili globali in un header! gli headers devono contenere solo prototipi di funzioni, tipi, e direttive di preprocessore
3) non usare mai #include con un sorgente, usala solo con gli headers (giuro che conosco una persona che include i file .c :D)


che vuoi dire al punto 3..... :mc:

end.is.forever
18-04-2005, 19:29
Un bel

#ifndef NOMEHEADER
#define NOMEHEADER
...contenuto dell'header...
#endif

e dopo puoi fare tutte le schifezze che vuoi :)

71104
19-04-2005, 18:54
Un bel
[...] e dopo puoi fare tutte le schifezze che vuoi :)
quella era la mia regola n° 1 ;) :D

71104
19-04-2005, 18:56
che vuoi dire al punto 3..... :mc:
mettiamo che nel tuo progetto hai un file che si chiama "main.c", è erratissimo scrivere #include "main.c" !!! :O

EDIT: anche perché in genere i sorgenti non sono protetti dall'inclusione multipla :)