|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2005
Messaggi: 258
|
[C] File Header e variabili globali
Ciao a tutti,
sto facendo un programma piuttosto complesso in C e mi sto incartando con la compilazione, mi perdo nei meandri degli include e dei vari file header, tenendo conto che ci sono variabili globali lì definite. Ho fatto vari tentativi e sembra che questa sia la più giusta ma evidentemente non lo è :P Faccio uno schema di come sono le mie variabili e le mie funzioni, e come ho diviso la dichiarazione e l'inizializzazione nei vari file: file UNO.c : Codice:
//UNO.c #include "VARIABILE.h" #include "DUE.h" #include "TRE.h" extern int GLOB; //è definita e inizializzata in VARIABILE.h extern int A, B; //sono definite e inizializzate in DUE.h extern struct flock L1, L2; // sono definite e inizializzate in TRE.h Codice:
//DUE.c #include "VARIABILE.h" #include "DUE.h" int A, B; //sono definite e inizializzate in DUE.h extern int GLOB; //è definita e inizializzata in VARIABILE.h Codice:
//TRE.c #include "TRE.h" struct flock L1, L2; // sono definite e inizializzate in TRE.h Codice:
//DUE.h #ifndef DUE_H #define DUE_H int A = 0; int B = 0; #endif Codice:
//TRE.h
#ifndef TRE_H
#define TRE_H
struct flock L1 = {F_RDLCK, SEEK_SET, 0, 0};
struct flock L2 = {F_WRLCK, SEEK_SET, 0, 0};
#endif
Codice:
//VARIABILE.h #ifndef VARIABILE_H #define VARIABILE_H int GLOB = 0; #endif quetso è l'output di compilazione : codice: UNO.o(.bss+0x0): multiple definition of `VARIABILE' DUE.o(.bss+0x0): first defined here UNO.o(.bss+0x4): multiple definition of `L1' TRE.o(.bss+0x0): first defined here UNO.o(.data+0x0): multiple definition of `L2' TRE.o(.data+0x0): first defined here UNO.o(.bss+0x14): multiple definition of `A' DUE.o(.bss+0x4): first defined here UNO.o(.bss+0x18): multiple definition of `B' DUE.o(.bss+0x8): first defined here Se potete dirmi come disporre le varie cose mi sareste di grande aiuto e se qualcuno mi spiega più in generale dove vanno dichiarate le variabili globali per permettere a vari ".c" di usufruirne, mi fareste ancora più felice Grazie in anticipo |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:08.



















