下面我的代码有问题吗?我得到了编译错误!奇怪的char *编译错误?
typedef unsigned char BYTE;
void foo(char* & p)
{
return;
}
int main()
{
BYTE * buffer;
// error C2664: 'foo' : cannot convert parameter 1 from 'char *' to 'char *&'
foo ((char*)buffer);
return 0;
}
由于提前,乔治
我认为ChrisW实际上在编辑时修正了您的代码中的错误...您将BYTE *转换为(char)而不是(char *)。 – UncleZeiv 2009-02-15 18:35:27
不是这样,你不能通过非const引用临时传递,所以错误仍然存在:转换创建一个临时的,并且不能通过引用传递。 – 2009-02-15 18:47:48
@UncleZeiv编辑历史记录说我做过,但我不记得那样做。我无法解释它。它可能是别人,即使是OP,做了一个并发编辑? – ChrisW 2009-02-15 18:58:38