Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-11-2008, 12:08   #1
willygroup
Junior Member
 
L'Avatar di willygroup
 
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
Però in compilazione ottengo dei code erroe LNK2005 e LNK1169 che mi dicono che le strutture sono state definite più volte.

Cosa sto sbagliando?
willygroup è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 12:41   #2
Tommo
Senior Member
 
L'Avatar di Tommo
 
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
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 18:48   #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
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
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 19:47   #4
willygroup
Junior Member
 
L'Avatar di willygroup
 
Iscritto dal: Oct 2008
Messaggi: 12
Quote:
Originariamente inviato da cionci Guarda i messaggi
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

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!
willygroup è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 19:49   #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
L'alias si fa con typedef:

typedef struct pippo{
int a;
int b;
} aliasPippo;
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Windows 11 24H2 e 25H2: bug negli update...
Mac OS X Cheetah gira su Nintendo Wii gr...
Tineco Floor One S9 Artist Steam Pro: la...
Metal Gear Solid, Sony rilancia il film ...
Il robot umanoide Unitree R1 si pu&ograv...
La Francia scarica Windows: Linux divent...
L'Electronic Froniter Foundation via da ...
Death Stranding 2 diventa Steam Deck Ver...
TSMC spinge i chip per smartphone verso ...
OpenAI prepara un modello per la cybersi...
Il CMF Phone 3 Pro sta arrivando: tra le...
Le migliori offerte Amazon di oggi: robo...
Altro che ridimensionamento: OnePlus sta...
YouTube batte Netflix come rivale della ...
I nuovi ASUS ROG Zephyrus G14 e G16 (202...
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: 11:54.


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