c++ - 如何查找/检测项目中的全局状态?

标签 c++ c

我有一个非常大的项目(不是我写的)。从我浏览的代码来看,我在项目中找不到任何全局状态,但我的同事告诉我项目中存在全局状态(这就是为什么我们只能在一个进程中创建一个上下文 session ,而不是在单个进程中创建多个上下文 session )。所以现在我想知道这个全局状态在代码库中的位置。

现在,当然,我可以问他全局状态在哪里。但我想我应该来 StackOverflow 看看是否有更好的替代方案(即不需要我花同事没有的时间的替代方案,并且当原始维护者离开时我可以在( future 的)项目上做一些事情我无法访问代码来提问)。如果程序/库中有全局状态,我如何找到/检测它?

(注意:我已将其标记为 C 和 C++,因为这些项目都是基于 C 和 C++ 的)

最佳答案

“全局”,就像全局变量一样,也许并不是它的全部真相。相反,您可能正在寻找只分配一次的东西(“单例”)。对于变量,在文件范围(函数外部)分配或作为静态分配的所有变量都具有此属性。 (它们也有静态存储持续时间。)因此,如果您要查找的此“状态”存储在变量中,请查找在文件范围内分配或静态分配的变量。

当然也有可能程序使用一些外部资源,这些资源只分配一次,例如文件、硬件资源或Windows注册 key 等。在这种情况下,它会变得更加复杂,并且没有通用的方法来找出答案。

关于c++ - 如何查找/检测项目中的全局状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22787404/

相关文章:

c++ - CGAL二次规划求解器,如何在目标函数中输入 "x^4"?并在限制条件下?

c++ - FP 数的指数字段不是我预期的,为什么?

c - 通过展开继承是否违反严格的别名规则?

c - 一个可以玩两手五张牌的函数?

c - 提升指向未定义位置的指针是否合法?

c - 使用一种 gcc 编译器进行编译但使用其他 gcc 编译器时不会出现段错误错误

c - C++ 函数和方法中的链表

c++ - 用于 Objective C 的 IDE

c++ - 为什么 std::condition_variable::notify_one 阻塞?

c++ - Qsort 不能正确排序字符串数组