2010-10-18 3 views
0

Привет, это продолжение предыдущего вопроса. Я спросил, однако, я не был зарегистрирован и, следовательно, не могу отредактировать вопрос. В любом случае у меня есть структураStruct Scope Access

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

extern INPUT *global; 

это файл заголовка. Член StackOverflow предположил, что в моем исходном файле я использую

INPUT global_[N], *global = global_; 

объявить и инициализировать его, которые прекрасно работали (как в я был в состоянии хранить и распечатывать информацию из структуры внутри этого метода), однако, когда я иду использовать переменную в других частях моего кода, кажется, что переменная выходит за рамки?

Я объявляю и использую переменную global_ в методе readFile, и я пытаюсь получить доступ к той же самой информации в main через * global.

Можно ли это сделать?
Благодаря
Чи

+0

К какой переменной вы относите? – leppie

+0

Чтобы ответить на вопрос, вам необходимо указать, где именно определяется «глобальный». Это может помочь, когда вы ссылаетесь на исходный вопрос. – sbi

+0

Вы пытаетесь получить доступ к 'global_' или' global' за пределами файла, где они определены? Если это так, вы можете использовать 'extern', чтобы объявить их. В противном случае, пожалуйста, предоставьте минимальный нерабочий пример. –

ответ

1
extern INPUT *global; 

Это объявляет глобальную переменную с именем global.

INPUT global_[N], *global = global_; 

Это определяет массив global_ и переменную global. В зависимости от того, где это определение происходит (в области функций или в пространстве имен, классе или функции), global может или не может определить тот же объект, на который ссылается объявление global.