作爲一個例子,我在一些OpenGL應用程序以下繪製函數:OpenGL中繪製函數的範圍中的靜態變量?
void Terrain::Draw(float ox, float oy, float oz) {
float terrainWidth = stepWidth * (width - 1.0f);
float terrainLength = stepLength * (length - 1.0f);
float startWidth = (terrainWidth/2.0f) - terrainWidth;
float startLength = (terrainLength/2.0f) - terrainLength;
(...)
}
Terrain
是一類,我肯定的步驟和地形寬度/長度的實例變量永遠的壽命期間改變該對象(它們在第一次調用draw函數之前被初始化)。
假設我的應用程序以穩定的25fps運行,該功能將被稱爲每秒25次。價值永遠不會改變,他們永遠是一樣的。
我會獲得任何聲明這些函數變量爲靜態?爲了防止它們在每次調用函數時被銷燬和聲明?
如果這些值永不改變,那麼需要在一個稱爲25 fps的函數中一次又一次地計算它們?你可以在構造函數中初始化它們,並在'void Terrain :: Draw(..)'中使用它們。 – Mahesh 2011-04-20 21:18:50