2010-10-18 102 views
0

嗨,這是前一個問題的延續我問,但我沒有註冊,因此無法編輯問題。無論如何,我有一個結構結構範圍訪問

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

extern INPUT *global; 

這是在頭文件。一個計算器委員建議,在我的源文件我用

INPUT global_[N], *global = global_; 

聲明並初始化它後就正常了(在我能夠存儲並從該方法中打印信息了結構的),但是當我去在我的代碼的其他部分使用該變量似乎該變量超出了範圍?

我聲明和使用變量global_在一個名爲readFile的方法,我試圖通過* global訪問主要相同的信息。

可以這樣做?
感謝

+0

你指的是哪個變量? – leppie 2010-10-18 08:03:21

+0

對於要回答的問題,您需要指定確切定義了「global」的位置。這可能有助於您鏈接到原始問題。 – sbi 2010-10-18 08:09:34

+0

你是否試圖從定義它們的文件外部訪問'global_'或'global'?如果是這樣,你可能想用'extern'來聲明它們。否則,請提供一個最小的非工作示例.. – 2010-10-18 08:14:37

回答

1
extern INPUT *global; 

這聲明瞭一個名爲global全局變量。

INPUT global_[N], *global = global_; 

這定義的陣列global_和可變global。取決於此定義的出現位置(在函數範圍或名稱空間,類或函數中),global可能會或可能不會定義global聲明所引用的相同對象。