我想我在这件事上的理论背景中错过了一些东西。我知道有类似的帖子,但我仍然不明白。
我有这样的代码:
void somefunc1(Word &Key)
{
somefunc2(Key);
}
void somefunc2(char &char1)
{
return;
}
编译器在这里给我一个错误:
somefunc2(Key);
[BCC32 错误] Unit1.cpp(830):E2357 引用初始化为“无符号短”,需要“字符”类型的左值
我发现这是因为 ANSI 2003 关于 C++ 处理临时和引用的规定,但我仍然不明白这里有什么问题。
当我进行 c 风格转换时:
somefunc2( *(char*)&Key )
它解决了一个问题。
谁能暗示我出了什么问题,为什么错了?