Я столкнулся с проблемой, касающейся инициализации локальной переменной в C.
Код следующий:
BOOL IsBitSet(uint32_t BitAddr)
{
uint32_t word, index, mask, word_value;
BOOL retval = FALSE;
word = GetWordValue(BitAddr); // index of the logic word in bits array
index = GetIndex(BitAddr, word); // index of the bit in logic word
mask = (1 << index); // mask for the bit
// get the logic word value
// osOK = 0x0
if(!osMutexWait(m_BitsArrayMutex, 100)){
word_value = (*(m_BitsArray + word));
osMutexRelease(m_BitsArrayMutex);
}
// test the bit
if((word_value & mask) >> index){
retval = TRUE;
}else{
retval = FALSE;
}
return retval;
}
Проблема в том, что компилятор создает сообщение об ошибке
ошибка: слово_значение может использоваться неинициализированным в этой функции "
Я понимаю причину этого
сообщение об ошибке, но я не знаю, как решить эту проблему. Я не знаю что
должно быть правильным значением инициализации для локальной переменной word_value
.
Кто-нибудь знает, как правильно решить эту проблему?