小编Tom*_*ult的帖子

两个线程可以写入同一个数组的不同元素吗?

我想知道两个线程是否可以修改同一个数组的元素.

如果我有unsigned char array[4],可以thread1设置array[0]array[1]'A'和thread2设置array[2]array[3]'B'同时没有问题?

c arrays multithreading

5
推荐指数
1
解决办法
1255
查看次数

C - 在两个数字之间切换一下

我刚试过这段代码:

void swapBit(unsigned char* numbA, unsigned char* numbB, short bitPosition)//bitPosition 0-x
{
    unsigned char oneShift = 1 << bitPosition;

    unsigned char bitA = *numbA & oneShift;
    unsigned char bitB = *numbB & oneShift;

    if (bitA)
        *numbB |= bitA;
    else
        *numbB &= (~bitA ^ oneShift);

    if (bitB)
        *numbA |= bitB;
    else
        *numbA &= (~bitB ^ oneShift);
}
Run Code Online (Sandbox Code Playgroud)

交换a和b的位位置x,但由于if()我认为有更好的东西.

当我看到这个:

*numbB &= (~bitA ^ oneShift);
Run Code Online (Sandbox Code Playgroud)

我真的认为有一种更简单的方法.如果你有东西给我,我会接受它:)

提前致谢

c bit-manipulation bit bitwise-operators

4
推荐指数
1
解决办法
366
查看次数