2011-05-31 205 views
1

我有一個不斷調用函數的程序。在我的函數中,我使用只在該函數內部使用的變量。 「風格」是否更好將這些變量設置爲全局變量,以便它們不會不斷創建或者更好地讓它們在函數中,因爲它們與程序的其餘部分無關。全局變量vs本地變量

謝謝

+1

什麼語言在某些地方是另一種方式,什麼類型的變量與許多它不會有關係 – Mark 2011-05-31 20:58:32

+0

它在C++和它的一系列不同類型的變量 – Johnston 2011-05-31 21:01:49

回答

2

你在做什麼是正確的。你想避免全局範圍變量。讓編譯器或解釋器負責任何內存使用優化。如果你走下另一條路,你將處於一個受到傷害的世界。

1

標準實踐將讓你保持變量在他們需要的範圍內。在你的情況下,這些變量將只是本地的,所以聲明它們並在本地使用它們。全局變量的邏輯通常用於跨應用程序訪問。

0

分配本地(自動)變量的性能成本實際上是零。這些變量是相對於堆棧指針分配的,並且已經是您的堆棧框架的一部分。局部變量沒有性能影響。

如果您需要一個變量來維護您的函數調用之間的值,只需將其聲明爲靜態本地而不是全局。

+1

因爲變量可能是真的(在C++中)複雜的課程 – Mark 2011-05-31 21:05:08

+0

OP正在尋求最佳實踐。 – jbruni 2011-05-31 21:08:00

1

如果你有它的類和函數,它絕對是最好在函數中有一個局部變量,如果你需要一些變量,那麼在同一個對象的更多函數中使用設置私有全局變量。 儘量不要使用全局公共變量,你永遠不知道誰或將會改變它。

1

我不確定你使用的是哪種語言,但通常最好不要將變量聲明爲全局變量,如果僅僅需要一種方法。

這也是更高的內存效率,因爲變量只在調用保存它的函數時佔用內存。

查看此link以瞭解更多有關爲什麼應儘可能避免使用全局變量的信息。