《Visual C++ 2010入门经典》(第五版)-第五章 程序结构1 5.3函数中的静态变量

来源:互联网 发布:java 替换jar包中的类 编辑:程序博客网 时间:2024/06/05 19:59

在函数中,有些事情用自动变量是不能完成的。例如,不能计算调用函数的次数,因为无法在多次调用中累积数值。

但如果非要有这种需要,那么有多种方法可以解决:

第一种:可以使用引用形参来更新调用程序中的计数器,但如果程序中许多不同位置都调用该函数的话,这种方法将无济于事;

第二种:可以使用在函数中递增的全局变量,但这样做是有风险的,因为程序中任何位置都可以访问全局变量,使得它们非常容易被意外修改;

在具有多个访问全局变量的执行线程的应用程序中,全局变量同样是危险的,因此必须特别注意管理从不同线程中访问全局变量的方式。当多个线程都可以访问某个全局变量时,必须处理的基本问题是:一个线程使用全局变量时,另外一个线程可以修改该变量的值。在这种情况下,最好的解决方式是完全避免使用全局变量。

为了创建在这次与下次函数调用之间其值继续存在的变量,可以在函数内将某个变量声明为static.

原创粉丝点击