【发布时间】:2020-10-05 05:13:50
【问题描述】:
我正在做一个项目,该项目使用带有我希望保持不变的源代码的库。在库的一个源代码文件中是一个全局 const c 风格的字符串数组,我想从项目中的另一个文件外部更改它:
const u8 STRING_PRODUCT[] PROGMEM = USB_PRODUCT;
默认情况下,全局常量具有内部链接。有没有可能在不触及此文件中的代码的情况下更改此数组?或者我至少可以以某种方式获取这个数组的内存地址,然后使用指针来改变它?谢谢!
【问题讨论】:
-
不,那不可能。
-
您需要解决的实际和潜在问题是什么?为什么你认为这个问题可以通过修改常量数据来解决?
-
另外,
PROGMEM用法表示嵌入式系统,其中数据可以放置在只读存储器中。这意味着在这种情况下,即使使用诡计也行不通。 -
好的,所以我这里指的库是Arduino核心库,特别是USB源代码。如果您制作 USB arduino 游戏控制器、键盘或 midi 控制器,则您使用的任何板的名称都会在您插入时成为计算机 USB 设备列表上的名称。唯一修改方法名字是通过实际修改源代码文件,但这意味着任何使用我的项目的人也必须修改自己的Arduino核心库,这对于技术水平较低的人来说会很困难。
-
USB_PRODUCT 是如何定义的?
标签: c++ constants linkage internals