我使用RVCT編譯器來編譯用C代碼(相關部分在這裏):警告 - 整數運算結果超出範圍在C
static void Test (void)
{
unsigned long regVal;
regVal |= (UINT32)( (0x1 << 31) |
(0x1 << 26) |
0x3E);
}
當編譯代碼時,我收到以下警告警告: 「#61-D:整數運算結果超出範圍」。
我想了解如何改變以避免警告。
預先感謝您!
您應該考慮首先初始化'regVal',或者僅用'='運算符而不是'| ='運算符來賦值。 – patrickvacek
@patrickvacek雖然這當然是一個有效的點,我不認爲這是這個問題的主要觀點。 –
我對編譯器並不熟悉,但通常情況下,該變量將採用隨機值,它不會被初始化爲0. 將您的| =改爲=以避免。 – oyvind