下面我的代碼有問題嗎?我得到了編譯錯誤!奇怪的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