Инициализация локальной переменной в C, управляемой мьютексом - PullRequest
0 голосов
/ 09 мая 2018

Я столкнулся с проблемой, касающейся инициализации локальной переменной в 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. Кто-нибудь знает, как правильно решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...