Compilerfehler C2040
„Operator“: „Bezeichner1“ unterscheidet sich in Ebenen der Dereferenzierung von „Bezeichner2“.
Ein Ausdruck, der die angegebenen Operanden beinhaltet, verfügt über nicht kompatible oder implizit konvertierte Operandentypen. Wenn beide Operanden arithmetisch bzw. beide Operatoren nicht arithmetisch sind (z. B. Array oder Zeiger), werden sie unverändert verwendet. Wenn ein Operand arithmetisch ist und der andere nicht, wird der arithmetische Operand in den Typ des nicht arithmetischen Operanden konvertiert.
Im folgenden Beispiel wird C2040 generiert und gezeigt, wie Sie diesen Fehler beheben.
// C2040.cpp
// Compile by using: cl /c /W3 C2040.cpp
bool test() {
char c = '3';
return c == "3"; // C2446, C2040
// return c == '3'; // OK
}