c++ - c++库文件中局部常量是如何存储的

标签 c++

我正在编写一个库,我需要在其中使用一些常量整数。我已经在我的 c 函数中将常量 int 声明为局部变量,例如const int 测试 = 45325;

现在我想隐藏这个常量变量。这意味着,如果我将这个库作为 .so 与某人共享,他不应该能够找到这个常量值? 是否可以隐藏库中定义的常量整数?请帮忙

这是我的示例代码

int doSomething() {

const int abc = 23456;
int def = abc + 123;

doSomething 在我的 cpp 文件中定义为本地函数。我将此常量用于同一函数内的某些计算。

最佳答案

如果我没理解错的话,你不会太担心导出的符号(因为它是一个普通的普通局部变量,无论如何我都不会担心),而是担心任何人发现这个常量(可能是因为它是用于许可证检查的加密 key 或魔术常量,或类似的东西)。

这在原则上是不可能的。拥有二进制代码的人(在图书馆中必然是这种情况)可以弄清楚他是否愿意。您可以通过以一种模糊的方式计算该值(但要注意编译器优化)来使它变得更难一些,但即便如此,这只会让想要找出答案的人变得更难。这只是意味着有人不会立即在反汇编中看到“mov eax,45325”,但无论哪种方式,它可能不会让某人忙碌超过几分钟。

关于c++ - c++库文件中局部常量是如何存储的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077018/

相关文章:

c++ - 运算符 "delete[]": how to detect? 误用 "delete"时的行为?

C++指针处理

c++ - 在 C++ 中从 cin 按下 ESC 按钮之前如何读取

c++ - [in]、[out]、[in, out] 和 [out, retval] 之间有什么区别?

c++ - 如何在 veins2.1 中更新车辆的路线?

c++ - 如何将 QString 转换为 int?

c++ - SSE 内在函数 - _mm_and_ps 奇怪的行为

c++ - 生成的代码中带有新行的 C 宏

c++ - 生成随机 64 位整数

C++ 静态计数器没有正确增加