C中局部变量的初始化由互斥锁

时间:2018-05-09 06:22:26

标签: c function

我在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;
}

问题是编译器会创建错误消息

  

错误:&#39; word_value&#39;可以在此功能中使用未初始化的&#34;

我理解这个的原因 错误消息,但我不知道如何解决此问题。我不知道是什么 应该是局部变量word_value的正确初始化值。 有没有人知道如何妥善解决这个问题?

0 个答案:

没有答案