【问题标题】:Modify static variable in Arduino libraries修改 Arduino 库中的静态变量
【发布时间】:2017-09-06 12:01:21
【问题描述】:

Arduino 上的许多基于 Web/Http 的库都带有自己预定义的 Web 内容,例如

static const char serverIndex[] PROGMEM =
    R"(<html><body>....</body></html>)";

除了修改库,有没有办法直接在程序草图中干预变量内容?

问候,

【问题讨论】:

    标签: arduino webserver arduino-esp8266


    【解决方案1】:

    您可以像更改任何其他静态类属性一样更改静态类属性,但不能更改存储在 PROGMEM 中的数据。这就是为什么这个变量也被称为 const 的原因。

    PROGMEM 数据存储在闪存中,是草图二进制文件的一部分。

    一种可能的解决方案是使用SPIFFS,但这需要更改库代码。

    另一种解决方案是编写自己的派生类:参见Are static variables in a base class shared by all derived classes?

    但这很混乱,所以恕我直言,改成原来的课程更容易。

    【讨论】:

    • 我的意思是在编译时,比如覆盖声明/定义本身,以便它占用我的。
    • 在编译时不可能有两个相同变量名的定义(你的和他们的)。由于 arduino 库通常是开源的,您可能希望获取库源并根据需要对其进行修改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多