c++ - OpenGL 绘图函数范围内的静态变量?

标签 c++ function opengl static-variables

例如,我在某些 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 是一个类,我确信 step 和 terrain 宽度/长度实例变量在对象的生命周期内永远不会改变(它们在第一次调用 draw 函数之前被初始化).

假设我的应用程序以稳定的 25fps 运行,该函数将每秒调用 25 次。这些值永远不会改变,它们将永远相同。

将这些函数变量声明为静态变量会有什么好处吗?为了防止它们在每次调用函数时被销毁和声明?

最佳答案

如今,编译器非常擅长微优化,以至于几乎不可能就它是否会改进或减慢您的程序做出明确的声明。

您必须进行基准测试才能真正确定。

关于c++ - OpenGL 绘图函数范围内的静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5736649/

相关文章:

C++ TR1 正则表达式不可用

c++ - 将参数传递给 Makefile 以更改编译后的代码

c++ - 为什么在 C++ 中默认签名为 'char'?

C++: vector 的子 vector 作为函数的参数

opengl - 使用 VBO 的纹理绑定(bind)无法正常工作

objective-c - cocoa OpenGL总是白色

c++ - cudaGraphicsGLRegisterImage 给出 cudaErrorMemoryAllocation

c++ - ShellExecute 在_beginthread

php - 相当于 PHP 的 call_user_func() 的 javascript

c - 传递给函数时如何访问二维结构数组中的所有成员?