3

我想在 AVR Studio 中使用 Adafruit_CC3000 arduino 库。我已按照说明将 Adafruit arduino lib 与 AVR studio 一起使用,因此我也可以使用其他 AVR 功能。但是我在编译代码时遇到了 50 次相同的错误。

错误 5 reinterpret_cast 从类型 'const char*' 到类型 '__FlashStringHelper*' 丢弃限定符 E:\arduino-1.0.1\libraries\Adafruit_CC3000\Adafruit_CC3000.cpp 183 3 ATmega32_WSClient_CC3K

我在网上搜索过此类错误。但我不明白这个问题。我要求让我了解此代码中的哪个内容会产生此错误?

4

1 回答 1

13

reinterpret_cast可以在不相关的指针类型之间进行转换,但不能删除constvolatile限定符。你需要const_cast那个。

选项是(大致按照增加讨厌的顺序):

  • 首先不要使用错误的指针类型;
  • 强制转换为const __FlashStringHelper*,如果您不需要修改对象;
  • 如果char*您确实需要修改它;
  • 如果您坚持完全放弃类型系统,请使用reinterpret_cast<__FlashStringHelper*>(const_cast<char*>(whatever))或蛮力。(__FlashStringHelper*)whatever
于 2015-01-26T12:03:57.157 回答