从'const char*'类型reinterpret_cast到类型'__FlashStringHelper*'抛弃限定符

Tah*_*ala 1 c++ avr avr-studio6

我想在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

我在网上搜索过这种错误.但我没理解这个问题.我请求让我明白这段代码中的哪一项是genratig这个错误?

Mik*_*our 12

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

选项(大致按照增加的肮脏程度):

  • 首先不要使用错误的指针类型;
  • 施放到const __FlashStringHelper*,如果你不需要修改对象;
  • 从投char*,如果你确实需要修改它;
  • 如果你坚持完全放弃类型系统,请使用reinterpret_cast<__FlashStringHelper*>(const_cast<char*>(whatever))或使用蛮力(__FlashStringHelper*)whatever.