c - 每次从函数返回时,我可以重置全局变量的值吗
问题描述
我希望函数每次返回时都应将全局变量值重置为 0。
我知道我可以gVar=0;
在每个 return 语句之前添加,但这不是我想要的方式,因为新开发人员可能没有这些信息并且可能不会重置gVar
值。
要求是
global int gVar = 10;
void fun()
{
// Need to modify gVar Here
gVar = 15;
.
.
.
gVar = 20;
if (some condition)
return;
else
return;
..
// more return possible from this function
// also new developer can add more return statement
// i want every time function return it should set gVar=0
}
解决方案
创建一个析构函数设置gVar
为 0 的类,然后在函数开头声明它的一个实例。当函数返回时,变量超出范围并调用析构函数。
class ClearGVar {
public:
ClearGVar() {}
~ClearGVar() { gVar = 0; }
}
void fun()
{
ClearGVar x;
...
}
编辑:
C++ 标签在此发布后被删除。在 C 中没有很好的方法来做到这一点。
推荐阅读
- html - 如何在html中缩进复选框和单选按钮?
- reactjs - 反应中所有嵌套路由页面的图像显示相同
- python - Spice多客户端,使用libvirt使用源码可以实现吗?
- json - 从父子 SQL 表返回 JSON 作为 Treeview
- xml - 有没有一种简单的方法来全局编辑 SVG 路径/点的圆度?
- css - 样式标签打字稿
- python - 在 Ball Tree 中获取 0-1 范围内的距离度量“Canberra”
- javascript - Java 脚本承诺
- salt-stack - SaltStack:file.managed 返回结果:无
- .net - 在dotnet中将double转换为字节数组