2010-10-18 5 views
0

Salut ce une continuation d'une question précédente, j'ai demandé cependant je n'étais pas inscrit alors et ne peut donc pas éditer la question. Quoi qu'il en soit, j'ai une structureStruct Scope Access

typedef struct 
{ 
char input[100][100]; 
int count; 
char name; 
int startTime; 
}INPUT; 

extern INPUT *global; 

Ceci est dans le fichier d'en-tête. Un membre stackoverflow a suggéré que dans mon fichier source j'utilise

INPUT global_[N], *global = global_; 

de déclarer et initialiser qui a bien fonctionné (comme j'ai pu stocker et imprimer des informations sur la structure de l'intérieur de cette méthode) mais quand je vais pour utiliser la variable dans d'autres parties de mon code, il semble que la variable est hors de portée?

Je déclare et utilise la variable global_ dans une méthode appelée readFile et j'essaie d'accéder à la même information dans main via * global.

Est-ce que cela peut être fait?
Merci
Chee

+0

De quelle variable parlez-vous? – leppie

+0

Pour répondre à la question, vous devez spécifier où exactement 'global' est défini. Cela peut vous aider lorsque vous créez un lien vers la question d'origine. – sbi

+0

Essayez-vous d'accéder à 'global_' ou' global' depuis l'extérieur du fichier où ils sont définis? Si c'est le cas, vous pouvez utiliser 'extern' pour les déclarer. Sinon, veuillez fournir un exemple non-fonctionnel minimal. –

Répondre

1
extern INPUT *global; 

Ceci déclare une variable globale nommée global.

INPUT global_[N], *global = global_; 

Ceci définit un tableau global_ et un global variable. En fonction de l'emplacement de cette définition (au niveau de la portée de la fonction, ou dans un espace de noms, une classe ou une fonction), global peut définir ou non le même objet que celui référencé par la déclaration global.