我可以每次从函数 return 重置全局变量的值吗
Can i reset value of global variable every time i return from a function
我想要一个函数在每次 return 时将全局变量值重置为 0。
我知道我可以在每个 return 语句之前添加 gVar=0;
,但这不是我想要的方式,因为新开发人员可能没有此信息并且可能不会重置 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
}
创建一个 class ,其析构函数将 gVar
设置为 0,然后在函数的开头声明它的一个实例。当函数returns时,变量超出范围并调用析构函数。
class ClearGVar {
public:
ClearGVar() {}
~ClearGVar() { gVar = 0; }
}
void fun()
{
ClearGVar x;
...
}
编辑:
发布后删除了 C++ 标签。在 C 中没有好的方法可以做到这一点。
我想要一个函数在每次 return 时将全局变量值重置为 0。
我知道我可以在每个 return 语句之前添加 gVar=0;
,但这不是我想要的方式,因为新开发人员可能没有此信息并且可能不会重置 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
}
创建一个 class ,其析构函数将 gVar
设置为 0,然后在函数的开头声明它的一个实例。当函数returns时,变量超出范围并调用析构函数。
class ClearGVar {
public:
ClearGVar() {}
~ClearGVar() { gVar = 0; }
}
void fun()
{
ClearGVar x;
...
}
编辑:
发布后删除了 C++ 标签。在 C 中没有好的方法可以做到这一点。