我有一个名为“count”的 C 函数,如下所示:
void count(){
static int c = 0;
printf("Counter=%i", c);
c++;
}
此外,我有一个 Cpp 对象 vector ,每个对象都调用“计数”函数。由于计数器变量是静态的,一个对象进行的调用也会增加所有其他对象的计数器值。我真正想要的是每个对象的专用计数器,因为“计数”函数是被测设备并且可能无法更改。我认为这应该可以使用 namespace ...有什么想法吗?
我最初的想法是使用命名空间...
namespace c1 {
#ifdef __cplusplus
extern "C" {
#endif
#include "count.h"
#ifdef __cplusplus
}
#endif
}
namespace c2 {
#ifdef __cplusplus
extern "C" {
#endif
#include "count.h"
#ifdef __cplusplus
}
#endif
}
然后像这样从 Cpp-Object 中调用 ...
if (objNr == 1) c1::count();
else if (objNr == 2) c2::count();
...
它对我不起作用。知道为什么吗?
最佳答案
提出的问题无法解决。如果该函数不可修改,则无法开始对单个实例进行计数。
关于c++ - 如何在 C++ 中限制对静态变量的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37467560/