c++ - 使部分代码中的变量不可用

标签 c++ variables scope

有时,作为安全检查,我想检查变量 v 是否未在代码的某些部分或某些函数的其余部分中使用,即使它是在此功能/代码部分的范围内仍然可见。例如:

int x;
// do something with x 
DEACTIVATE(x);
// a portion of code which should not use x
ACTIVATE(x);
// do something else with x

有没有什么好的方法可以在编译时进行这种类型的验证?

注意:我知道应该始终为每个变量使用尽可能小的范围,但在某些情况下,将这种做法推向极端会变得很麻烦,而这样的工具会有用的。

谢谢!

最佳答案

实现此目标的最佳方法是在代码中实际使用小范围,即使用简短、集中的方法,只做一件事。这样一来,每个单独的方法往往只有很少的局部变量,一旦您不需要它们,它们就会自动超出范围。

如果您有让您担心这个问题的长期遗留方法,最好的长期解决方案是通过将更小的功能 block 提取到单独的方法中来重构它们。大多数现代 IDE 都具有自动重构支持,这降低了引入此类更改的错误的风险 - 尽管最好的当然是拥有一组适当的单元测试以确保您没有破坏任何东西。

推荐阅读Clean Code .

关于c++ - 使部分代码中的变量不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5420171/

相关文章:

c++ - 为什么使用 constexpr、__PRETTY_FUNCTION__ 和 char * 的这两段代码会有不同的结果?

c++ - 链接 OpenCV 时 undefined symbol

c - 编写一条语句,查看变量是否接近 C 中保存的值

java - 使用变量,在 switch 语句中初始化,在外部

javascript - 从第一个对象创建的另一个对象中访问对象原型(prototype)的变量

javascript - 函数参数在 return new Promise(function(resolve,reject) 内不可见

c++ - Linux下的MFC头文件g++ : expected ‘{’ before ‘<’ token

c++ - 无法编译 64 位 Visual Studio 2010 项目

c++ - 使用更多 C++ 文件在 header 中声明的全局变量

C++ 在文件级别创建作用域