更改常量全局变量

拉米·沙美(Ramy Sameh)

在另一个模块中定义了一个常量全局变量。

我想在运行时操作此变量(因为我无法在其他模块中进行更改并删除co​​nst关键字)。

我知道常量放在ROM中...

该代码将下载到微控制器(豹powerpc 5643),所以我认为常量将位于闪存中(而不是普通的PC ROM)

我已经尝试过类似的操作,并且编译器在编译过程中产生了错误:

const int global_Variable = 0;
const int* ptr = &global_Variable;
*ptr = 5;

那么,您知道其他方法可以完成此操作吗?

放松

如果您知道常量确实放在平台上的ROM(或更可能是闪存)中,那么您当然将无法修改,至少不能直接修改。

如果它是闪存,则可能会出现,但是您将不得不更深入一点,因为对闪存进行重新编程并不是仅通过对其进行写操作就必须擦除相关部分,并且通常存在块/扇区大小限制来处理。不会很漂亮

您的实际代码无法编译,因为您无法通过const指针编写代码const毕竟这是的要点)。您可以放弃它并强制编译器生成写操作,但是如果目标地址指向不可写的内存,则它当然不起作用

const int global_Variable = 0;
int *ptr = (int *) &global_Variable; /* Cast away the const. */
*ptr = 5; /* Do the write! */

同样,如果位于不可写内存中,则此操作将无效global_Variable您将获得不确定的结果。

最后,这是如此明显,以至于我什至都没有想到要写它:你在做什么听起来听起来很糟糕。显然,你在工作的软件设计与假设global_Variable恒定的您正在尝试推翻设计的特定部分,如果成功,很可能会破坏很多东西。换句话说:考虑不这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改全局变量

来自分类Dev

React Native中的全局变量/常量

来自分类Dev

常量和全局变量之间的区别

来自分类Dev

jQuery更改函数内部的全局变量

来自分类Dev

如何通过函数更改全局变量?

来自分类Dev

承诺在for循环中更改全局变量

来自分类Dev

在函数JS中更改全局变量

来自分类Dev

JavaScript全局变量类型更改

来自分类Dev

Javascript函数更改全局变量(数组)

来自分类Dev

更改全局变量的图像名称-Swift

来自分类Dev

从事件功能更改全局变量

来自分类Dev

全局变量的Javascript更改值

来自分类Dev

全局变量功能更改无效

来自分类Dev

PHP全局变量未更改

来自分类Dev

更改全局变量值jQuery

来自分类Dev

JavaScript全局变量未更改

来自分类Dev

使自定义结构类型的常量全局变量

来自分类Dev

用全局变量初始化常量

来自分类Dev

静态,常量和全局变量的性能提升

来自分类Dev

从命令行读取常量作为全局变量

来自分类Dev

将Lua中的全局变量从“全局”更改为C

来自分类Dev

常量变量和非常量全局变量之间的类型推断有何不同?

来自分类Dev

常量变量和非常量全局变量之间的类型推断有何不同?

来自分类Dev

Python - 将局部变量更改为全局变量

来自分类Dev

如何使用局部变量更改全局变量

来自分类Dev

更改参数时如何更改全局变量

来自分类Dev

全局状态与全局变量

来自分类Dev

Rails全局变量

来自分类Dev

执行:全局变量