代码之家  ›  专栏  ›  技术社区  ›  Brighter side user295691

在Ada中改变其值的常数

  •  0
  • Brighter side user295691  · 技术社区  · 7 年前

    知道常数地址的东西能改变它吗?或者Ada能保证吗?

    我目前正在做一个大项目,我无法阅读该项目的所有代码。但我必须调试其中的一些部分。我有奇怪的麻烦。实际上,我已经更改了这样一个变量的声明 My_Var : constant Integer :=1; My_Package ) 然后在项目中对我的变量做了一些事情(黑匣子)

    My_Package.My_Var<=0 它回来了 True

    ,知道我的常数地址的东西能改变它吗?或者ada能保证吗?

    PS:我做了一个 (gdb) watch My_Package.My_Var 没有任何东西可以阻止程序,直到我在 if My_Package.My_Var<=0

    function 返回一个常量值,错误随之消失(但没有帮助我看到变量在哪里被修改) 希望你能帮助我。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jacob Sparre Andersen    7 年前

    知道常数地址的东西可能会改变它。例外情况是常数存储在(EP)ROM中,或者编译器与操作系统合谋将其放入可执行文件的只读部分。

    总的来说,如果你真的足够关心所需的工作,Ada允许你在所有安全的地方工作。