【问题标题】:Combine const char with string into another const char [duplicate]将 const char 与字符串组合成另一个 const char [重复]
【发布时间】:2017-06-10 17:53:42
【问题描述】:

我有两个const char [] PROGMEM 变量需要连接到另一个const char [] PROGMEM。我对 C 完全陌生,无法理解如何在 previous question 上使用 strncpy

const char data_one[] PROGMEM = {0x00,0x01,0x02};
const char data_combined[] PROGMEM = data_one + "{0x03,0x04,0x05}";

【问题讨论】:

  • 这段代码能编译吗?你也了解const这个关键字及其语义吗?
  • @EdHeal 它编译为larger script的一部分
  • 请提供一些代码来证明这一点
  • 为什么在标签中使用 C++?
  • 无法编译

标签: arduino strncpy


【解决方案1】:

无法使用memcpy(或strcpy 或类似名称),因为目标是常量且只读的。您也不能使用您在示例代码中显示的内容。

我能想到的唯一解决方案也是我真正不推荐的解决方案,因为它会使代码有些混淆,难以阅读和维护,那就是使用预处理器宏。

【讨论】:

  • 正确使用宏没有什么问题。
  • @SamVarshavchik 是的,但在这种情况下,我真的看不出有任何方法可以使用宏而不会使它成为维护的噩梦。
  • #define DATA_ONE ...#define DATA_TWO ...,然后在两个地方分别使用 DATA_ONEDATA_TWO。看起来不是特别难维护。
  • @SamVarshavchik 除非您需要修改,例如DATA_ONE 不修改与DATA_TWO 的组合使用。以及其他一些类似的案例。
  • 对我来说很明显,其目的是让组合使用始终保持一致。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
相关资源
最近更新 更多