我有一个简短的变量(16位)和一个索引(无符号字符)。
我需要一个宏,该宏在变量index中返回第data个。
这是我得到的:

#define GETBIT(data, index) data & 1 << index


以及我如何使用它:

unsigned char i;
short * twobytes = (short *) calloc(1, sizeof(short));
twobytes =  ((char * )buffer + *currentIndex);
while (codeLength != 0)
{
    i = GETBIT(code, codeLength--);
    *twobytes = SETBIT(*twobytes, *currentBitIndex, i);
    (*currentBitIndex)++;
    if (*currentBitIndex == 8) {
        (*currentIndex)++;
        (*currentBitIndex) %= 8;
    }
}


由于某些原因,在我的测试用例中,i始终等于0,有时它应该等于1

我在做什么错,应该如何解决?

谢谢。

最佳答案

没关系,谢谢,我应该做的不是codeLength--

关于c - 按位宏,使它有点不工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24764669/

10-10 07:58