2011-10-09 72 views
2

說我有一堆函數將使用int = price;例如。我可以在int main和all函數之外設置它們,以便它們都可以調用它嗎?全局變量好奇心

例如,我在這裏叫int價格以外的主要價格,但會有更多的功能使用它。這很好嗎?

int price; 

int main() 
{ 

cout << price; 
return 0; 
} 

回答

2

好的。推薦肯定沒有。儘量避免全局變量。你也應該初始化你的變量。

+0

通過初始化你的意思是0對嗎? – mystycs

+0

但從句法上來講它的罰款權利?因爲我需要將它用於我所做的事情。 – mystycs

+0

@mystycs從句法上來說,這是正確的。但是你做了什麼,我相信它也可以在沒有全局變量的情況下完成。通過初始化,我的意思是任何你認爲正確的值是0還是別的東西,而不管大多數現代編譯器爲你做這些事情。它被認爲是最佳實踐。 – FailedDev

1

只要price變量在您想要使用它的位置可見,就可以了。

如果你想在另一個「編譯單元」使用這個變量

(另一個.c文件),你將不得不把你的新文件的開頭:extern int price;,它告訴編譯器,它應該使用price變量在項目的其他地方宣佈。

請注意,強烈建議不要使用全局變量,因爲沒有辦法控制誰修改變量以及何時修改變量,這可能會導致一些令人討厭的副作用。

+0

哇從來沒有聽說過這種方式。 – mystycs