到目前为止,我已经试过,但我仍然在下面的代码得到一个错误:如何将const unsigned short转换为unsigned short?
#include<iostream>
typedef unsigned short unichar;
typedef const unichar unimap_t[2];
unimap_t x = {0x0004,0x00ff};
const unimap_t * ret()
{
return x;
}
int main()
{
unsigned short* pX2 = const_cast < unsigned short* > (ret());
std::cout <<pX2[1];
return 0;
}
我收到以下错误。
a.cpp: In function ‘int main()’:
sa.cpp:22:60: error: invalid const_cast from type ‘const unichar (*)[2]
{aka const short unsigned int (*)[2]}’ to type ‘short unsigned int*’`
这是为什么这个投票?问题很明显,海报显示了代码。这是一个具有实际编程问题的令人难以置信的问题。 – hetepeperfan
@hetepeperfan:其实问题并不清楚。标题问如何做一件事(将'const unsigned short'转换为'unsigned short'),但是在代码中他试图做一些完全不同的事情('convert a const unsigned short(*)[2]'到一个'unsigned short *')。这并不是说它值得倒下,这是一个诚实的错误,但它肯定需要一些澄清。 –