Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini è uno smartwatch compatto capace di offrire un'esperienza completa di monitoraggio della salute e fitness con una cassa da 43 mm che può adattarsi a qualsiasi tipo di polso, dal più grande al - soprattutto - più piccolo. Con l'architettura dual-chip e un'autonomia che può coprire due giorni con tranquillità, rappresenta la soluzione ideale per chi cerca prestazioni premium in un formato ridotto.
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Dopo il recente lancio della serie Xiaomi 15T di Monaco, vi parliamo oggi della versione più performante della nuova famiglia, ovvero Xiaomi 15 T Pro. Vi raccontiamo la nostra prova nel dettaglio, spiegando perché a questo prezzo e in questa fascia, questo smartphone ha davvero senso tenerlo in seria considerazione.
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer ha ampliato la sua offerta professionale con il TravelMate P6 14 AI, un notebook ultraleggero e robusto pensato per chi lavora in mobilità. Certificato Copilot+ PC, combina design premium, autonomia elevata e piattaforma Intel Core Ultra Serie 2 con funzionalità AI, garantendo sicurezza, affidabilità e produttività per l'utenza business moderna.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-01-2008, 12:01   #1
Dawidh
Member
 
L'Avatar di Dawidh
 
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
[C/C++] Modularizzazione e file header

Ciao a tutti, allora devo fare un progetto per scuola e in pratica devo modularizzare un unico file in cpp di 4000 righe di codice (e senza file .h) dividendolo in più file cpp e mettergli i relativi file h.

File .h
Codice:
...
struct drive {				// Drive su un canale ATA
	bool presente;
	bool dma;
	unsigned int tot_sett;
	partizione* part;
};
...
e fin qui tutto bene, anzi una cosa ma è giusto mettere le struct nei file h e soprattutto va bene scriverle cosi'?

Il problema mi si presenta con alcune struct:

Codice:
// descrittore di swap
struct des_swap {
	short channel;		// canale: 0 = primario, 1 = secondario
	short drive;		// dispositivo: 0 = master, 1 = slave
	partizione* part;	// partizione all'interno del dispositivo
	bm_t free;		// bitmap dei blocchi liberi
	superblock_t sb;	// contenuto del superblocco 
} swap; 	// c'e' un unico oggetto swap
in questo caso la struct des_swap ha già il nome swap e qunado compilo mi restituisce questo errore:
Codice:
/home/davide/Os2/nucleo/sistema/libreria.cpp:20: multiple definition of `_swap'
sistema/sist_cpp.o:/home/davide/Os2/nucleo/sistema/sistema.cpp:81: first defined here
Ho anche provato a mettere la struct nel file c e dichiararla extern nel file h (tipo: extern struct swap ma niente.

Non essendo molto esperto chiedo aiuto a voi.. come posso risolvere?
Grazie!!!!!
Dawidh è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2008, 13:51   #2
Dawidh
Member
 
L'Avatar di Dawidh
 
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
Ehm, scusate ma ho già risolto..... bastava aprire e risalvare tutti i file del progetto e adesso funziona tutto!!
Scusate
Dawidh è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2008, 13:56   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Nel .h:
Codice:
// descrittore di swap
struct des_swap {
	short channel;		// canale: 0 = primario, 1 = secondario
	short drive;		// dispositivo: 0 = master, 1 = slave
	partizione* part;	// partizione all'interno del dispositivo
	bm_t free;		// bitmap dei blocchi liberi
	superblock_t sb;	// contenuto del superblocco 
};
Nel .cpp relativo:
Codice:
struct des_swap swap;
Negli altri .cpp dove mi immagino si usi la variabile, suppongo, globale swap:

extern struct des_swap swap;

Ovviamente devi includere il .h.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2008, 15:59   #4
Dawidh
Member
 
L'Avatar di Dawidh
 
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
Si infatti io avevo fatto come hai scritto tu però continuava a darmi quell'errore... prbabilemente perché compilo con un makefile (che tra l'altro non ho fatto io e quindi non conosco il funzionamento specifico) quindi dovevo ricompilare tutti i file per avere i file oggetto TUTTI giusti altrimenti alcuni mi rimanevano con la struct swap linkata e mi dava multiple definition.
Dawidh è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2008, 16:01   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dawith...se devi rimettere mano al progetto guarda di togliere le variabili globali...sono una bestemmia in un linguaggio ad oggetti
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione Xiaomi 15T Pro, è lui il nuovo best buy? ...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Scarpe che vi faranno correre alla veloc...
MOVA Z60 Ultra Roller Complete: 200€ di ...
Xiaomi SU7 si sposta da sola? Non esatta...
Cheater bannati entro 30 minuti senza ne...
Record di auto elettriche a settembre an...
In Norvegia due nuovi record: auto elett...
Linux sempre più orfano di Intel:...
Tesla conferma il bonus su Model 3: con ...
Anche Huawei prepara il suo smartphone u...
Sondaggio Steam: AMD guadagna ancora ter...
Zeekr si espande in Europa: 001, X e 7X ...
Fino a 17 sterline a telefono: il risarc...
Nintendo Switch 2 sfrutta una variante p...
AMD e OpenAI stringono un accordo strate...
Nest Cam 2K 3a gen: la videocamera da in...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:48.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v