Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Struct, extern e header
Forum - C/C++ - Struct, extern e header

Avatar
Jimmy_5 (Normal User)
Newbie


Messaggi: 11
Iscritto: 09/12/2011

Segnala al moderatore
Postato alle 20:06
Sabato, 21/01/2012
Il mio problema è che non capisco come usare gli struct insieme ad extern.

Posto il codice:

main.cc

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include "operazioni.h"
  4. #include "dati.h"
  5. using namespace std;
  6.  
  7. int a, b, c;
  8. struct insieme uno;
  9.  
  10. void calcola(){
  11. set();
  12. somma();
  13. prodotto();
  14. set();
  15. }
  16.  
  17. void stampa(){
  18. cout<<"a,b,c: "<<a<<" "<<b<<" "<<c<<" "<<endl;
  19. cout<<"Numeri dell'insieme: "<<uno.numeri[0]<<" "<<uno.numeri[1]<<"\t"<<uno.numeri[2]<<endl;
  20. cout<<"ciao\n";
  21. }
  22.  
  23. int main()
  24. {
  25.  
  26. atexit(stampa);
  27.  
  28. cout<<"Benvenuto!\n";
  29. calcola();
  30.  
  31. return 0;
  32.  
  33. }



operazioni.cc

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include "dati.h"
  3. using namespace std;
  4.  
  5. void somma(){
  6. cout<<"Somma: "<<a+b+c<<endl;
  7. }
  8.  
  9. void prodotto(){
  10. cout<<"Prodotto: "<<a*b*c<<endl;
  11. }
  12.  
  13. void set(){
  14.  
  15. char input;
  16.  
  17. cout<<"Vuoi settare le variabili? s/n\t";
  18. cin>>input;
  19.  
  20. if(input=='s'){
  21. cout<<"Inserisci a: ";
  22. cin>>a;
  23. cout<<"Inserisci b: ";
  24. cin>>b;
  25. cout<<"Inserisci c: ";
  26. cin>>c;
  27. cout<<"Inserisci i numeri dell'insieme 1:\t";
  28. cin>>uno.numeri[0];cout<<"\t";
  29. cin>>uno.numeri[1];cout<<"\t";
  30. cin>>uno.numeri[2];cout<<endl;
  31.  
  32. }
  33.  
  34. }



operazioni.h

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include "dati.h"
  3.  
  4. void somma();
  5. void prodotto();
  6. void set();



dati.h

Codice sorgente - presumibilmente C++

  1. extern int a, b, c;
  2.  
  3. struct insieme{
  4.        int numeri[2];
  5. };
  6.  
  7. extern struct insieme uno;




PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:58
Sabato, 21/01/2012
Deve essere

dati.h

Codice sorgente - presumibilmente C++

  1. struct insieme
  2. {
  3.         int numeri[2];
  4. };
  5.  
  6. extern struct insieme uno;
  7. extern int a, b, c;




operazioni.h

Codice sorgente - presumibilmente C/C++

  1. void somma();
  2. void prodotto();
  3. void set();



operazioni.cc

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  
  3. #include "dati.h"
  4.  
  5. using namespace std;



main.cc

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. #include "dati.h"
  5. #include "operazioni.h"
  6.  
  7. using namespace std;
  8.  
  9. struct insieme uno;
  10. int a, b, c;



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Jimmy_5 (Normal User)
Newbie


Messaggi: 11
Iscritto: 09/12/2011

Segnala al moderatore
Postato alle 0:52
Domenica, 22/01/2012
mmh, non vedo la differenza tra il tuo e il mio codice: struct e int sono dichiarati nello stesso modo, negli stessi file

EDIT:: a ok,
Codice sorgente - presumibilmente C/C++

  1. #include "dati.h"

non va messo nell'header operazioni.h

grazie

Ultima modifica effettuata da Jimmy_5 il 22/01/2012 alle 0:55
PM Quote