【发布时间】:2009-09-29 11:24:22
【问题描述】:
我有一个函数需要相当多的内部临时存储来进行计算(一些矩阵运算),我知道这个函数会被频繁调用(比如在整个程序运行时每毫秒)。我的直觉告诉我,最好将这些临时变量声明为静态的,这样每次调用函数时一次又一次地创建它们不需要太多的管理工作。无论如何,每次调用函数时我都必须初始化它们,因此出于功能目的不需要让它们保持活动状态。我知道将它们设为静态会破坏线程安全,但这不是问题。
由于知识通常比任何直觉都好,我想知道处理这种情况的“正确”方法是什么。
void frequentlyCalledFunction(void)
{
double matrix1[10][10];
double matrix2[10][10];
/* do something with the matrices ... */
}
或
void frequentlyCalledFunction(void)
{
static double matrix1[10][10];
static double matrix2[10][10];
/* do something with the matrices ... */
}
【问题讨论】:
标签: c