一个简单的C++代码:
编译使用g++时出现以下错误:
为什么?
int main(){
unsigned char* t="123";
}
编译使用g++时出现以下错误:
invalid conversion from ‘const char*’ to ‘unsigned char*’ [-fpermissive]
为什么?
"123"
的类型为char[4]
,而在C++中它的类型为const char[4]
。GCC如果没有以标准模式调用,也允许在char *
和unsigned char *
之间进行转换而无需强制转换。 - M.Mconst unsigned char* tmp = reinterpret_cast<const unsigned char *>("123"); t = const_cast<unsigned char *>(tmp)
。 - kgbook