Ich verwende RVCT Compiler diesen Code in C (entsprechenden Abschnitt hier) zu kompilieren:Warnung - Integer Operationsergebnis ist in c außerhalb des zulässigen Bereichs
static void Test (void)
{
unsigned long regVal;
regVal |= (UINT32)( (0x1 << 31) |
(0x1 << 26) |
0x3E);
}
Wenn Sie den Code kompilieren, erhalte ich die folgende Warnung Warnung : "# 61-D: Ergebnis der Ganzzahloperation liegt außerhalb des Bereichs".
Ich würde gerne verstehen, was zu ändern ist, um die Warnung zu vermeiden.
Vielen Dank im Voraus!
Sie sollten in Erwägung ziehen, 'regVal' zuerst zu initialisieren oder es nur mit dem Operator' = 'anstelle des Operators' | = 'zu initialisieren. – patrickvacek
@patrickvacek, während das ist sicherlich ein gültiger Punkt, ich glaube nicht, dass das der Hauptpunkt dieser Frage ist. –
Ich bin nicht mit diesem Compiler vertraut, aber normalerweise wird diese Variable einen zufälligen Wert annehmen, sie wird NICHT auf 0 initialisiert. Ändern Sie Ihre | = zu = zu vermeiden. – oyvind