假设你有一个类(c ++)或模块(单个c文件).然后在你的一个函数中,你想要存储一个变量的副本并保持它的值,直到下次调用该函数为止,是否更好地拥有一个全局(在c ++中可以是私有的而在c中不是extern'd)它在模块范围内)还是制作一个局部静态变量?
例如:
void some_func_that_does_not_do_anything_useful(int arbVal)
{
static int lastArbVal = 0;
if (arbVal > lastArbVal)
{
lastArbVal = arbVal;
}
}
Run Code Online (Sandbox Code Playgroud)
我制作静态的原因是为了尽可能地保持其范围,但我读到的某些内容建议你应该使用全局变量,所以现在我很困惑.
什么是最好的(如果有的话)?,利弊?
Yu *_*Hao 10
这里的规则很简单:如果变量需要由多个函数访问,请将其设置为全局.如果不是,static函数内部的变量通常更好.其中一个优点是避免污染全局命名空间.
请注意,如果不需要在文件外部访问全局变量,最好将其声明为文件范围变量(即,将其声明为static)
回到你的例子,我认为最static好像你已经做的那样使用变量.
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |