|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Oct 2008
Messaggi: 12
|
[C++] Problema (probabilmente stupido) con inclusioni
Ciao,
ho definito 2 strutture che vengono usate da quasi tutte le funzioni del mio programma. Le ho inserite in un file es: struct.h e poi le devo usare in alcuni file .h che contengono altre funzioni. es: alpha.h, beta.h Ho inserito: #include "mystruct.h" sia in alpha.h che in beta.h Ed ho inserito le seguenti direttive nel file struct.h: Codice:
#ifndef MYSTRUCT_H
#define MYSTRUCT_H
#pragma once
.
.
.
struct pippo{
int a;
int b;
}aliasPippo;
.
.
#endif
Cosa sto sbagliando? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Anche io ho avuto questo problema, ma non c'è stato verso di risolverlo
Stai già facendo le uniche due cose che risolverebbero in un caso normale, cioè ifdef e pragma once... cosa che ho provato a fare anche io, ma senza risultati. Dovresti provare a mettere la struct in un namespace, o sennò statica in una classe, dovrebbe aiutare. Cmq credo che il linker di C++ sbarelli abbastanza in progetti complessi, spesso bisogna stare attenti oppure demolisce tutto... Spero cmq che qualcuno più esperto sappia come rimediare |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
No, qui il problema è diverso. Hai dichiarato la variabile aliasPippo nel .h e questo non va assolutamente bene. Quando il compilatore va a linkare i file oggetto di due sorgenti che includono quella struttura ovviamente la variabile aliasPippo è dichiara due volte
|
|
|
|
|
|
#4 | |
|
Junior Member
Iscritto dal: Oct 2008
Messaggi: 12
|
Quote:
Ecco! Adesso funziona! Avevo capito che "aliasPippo" fosse un'alias del nome della struttura (a cosa sarebbe servito poi?), invece è la dichiarazione di una variabile di tipo Pippo che si chiama aliasPippo. Grazie mille! Ero ad un punto morto! |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'alias si fa con typedef:
typedef struct pippo{ int a; int b; } aliasPippo; |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:58.




















