BUBS - Barely Ubuntu Bar Sport

Nerd Bar => Supporto TeNNico => Discussione aperta da: TonyWhite il 03 Ottobre 2018, 19:19:38

Titolo: [RISOLTO] [CAZZATA] C++ #ifndef per proteggere sorgente in runtime
Inserito da: TonyWhite il 03 Ottobre 2018, 19:19:38
Sono pazzo?
[SI] [NO] [ANNULLA] [TRALASCIA]
Che poi... cazzo significa "tralascia" se c'è "annulla"?

Ma ritorniamo all'argomento principale
Ho scritto questo (https://gist.github.com/TonyWhite/070e552314b63b74f7247529c2fd96e2) e l'ho commentato in fondo sotto sotto giù in basso.
Secondo voi è utile proteggere il sorgente dal caricamento multiplo?
Titolo: Re:C++ #ifndef per proteggere sorgente in runtime
Inserito da: zeek il 04 Ottobre 2018, 08:30:17
il compilatore si accorge se definisci più volte uno stesso header? se sì, probabilmente non è molto utile..
Titolo: Re:C++ #ifndef per proteggere sorgente in runtime
Inserito da: TonyWhite il 04 Ottobre 2018, 22:50:46
Mi sono sentito con un paio di amici programmatori.
Quello che ho proposto è una cazzata.
1) Avevo letto che è possibile evitare di definire più volte lo stesso header
2) Avevo pensato che sarebbe utile evitare la definizione multipla del sorgente

In pratica avevo delle lacune che mi hanno portato a pensare quella soluzione
1) Gli header devono poter essere indipendenti dal sorgente, quindi ho sbagliato a includere il sorgente nell'header
2) Ogni sorgente che ha un header separato, avrà sempre il relativo #include in cima
3) Il makefile indicherà *.cpp ansiché il solo main.cpp. In questo modo non sarò vincolato a includere anche il sorgente in ogni classe che lo chiama.
L'errore ora è palese: me lo stavo creando da solo.
Titolo: Re:[RISOLTO] [CAZZATA] C++ #ifndef per proteggere sorgente in runtime
Inserito da: sheldon il 05 Ottobre 2018, 08:30:30
Però è stato utile avere quell intuizione, adesso sappi di più, se non si cerca sempre qualcosa, non stimoli i neuroni.  :smoke:
Titolo: Re:[RISOLTO] [CAZZATA] C++ #ifndef per proteggere sorgente in runtime
Inserito da: TonyWhite il 05 Ottobre 2018, 09:10:05
Esatto ;)
Titolo: Re:[RISOLTO] [CAZZATA] C++ #ifndef per proteggere sorgente in runtime
Inserito da: sgnablo il 05 Ottobre 2018, 17:00:10
1)non devi MAI includere sorgenti negli header
2)non devi MAI includere sorgenti negli header
3)gli header devono avere sempre gli header guard (#IFNDEF __QUALCOSA__ #DEFINE <tutto il tuo .h> #ENDIF )
4)il compilatore non è in grado di accorgersi se un header è stato incluso più volte se non usi un guard, quindi alla seconda definizione di un simbolo ti sfanculerebbe immediatamente.
Titolo: Re:[RISOLTO] [CAZZATA] C++ #ifndef per proteggere sorgente in runtime
Inserito da: TonyWhite il 06 Ottobre 2018, 11:44:58
Un amico mi ha fatto notare che ho adottato il metodo della SCU (https://en.wikipedia.org/wiki/Single_Compilation_Unit) :asd: