Sto usando il compilatore RVCT per compilare il codice in C (sezione pertinente qui):Attenzione - Intero risultato dell'operazione è fuori campo in c
static void Test (void)
{
unsigned long regVal;
regVal |= (UINT32)( (0x1 << 31) |
(0x1 << 26) |
0x3E);
}
Quando si compila il codice, viene visualizzato il seguente avviso Attenzione : "# 61-D: il risultato dell'operazione integer è fuori intervallo".
Mi piacerebbe capire cosa cambiare per evitare l'avviso.
Grazie in anticipo!
Si consiglia di inizializzare 'regVal' o di assegnarlo solo con l'operatore' = 'anziché con l'operatore' | = '. – patrickvacek
@patrickvacek mentre quello è certamente un punto valido, non penso che questo sia il punto principale di questa domanda. –
Non ho familiarità con quel compilatore, ma di solito, quella variabile assumerà un valore casuale, NON verrà inizializzata a 0. Cambia il tuo | = a = per evitare. – oyvind