1、只在进入和退出变量作用域之间维护变量的值,静态变量的一种通常用法是“记住”是否已经为一个函数完成过特定的初始化。
第一次调用performTask(),inited值为false;第二次调用performTask()时,inited值为true;因为当程序加载时,就已为其分配内存空间。
代码例子如下:
1 #include "stdafx.h" 2 #include <iostream> 3 4 void performTask() 5 { 6 static bool inited = false; 7 if(!inited) 8 { 9 std::cout<< "initing\n"; 10 inited = true; 11 } 12 } 13 int _tmain(int argc, _TCHAR* argv[]) 14 { 15 performTask(); 16 performTask(); 17 return 0; 18 }