gpt4 book ai didi

c++ - 操作结果未分配给变量?

转载 作者:行者123 更新时间:2023-11-27 23:19:22 25 4
gpt4 key购买 nike

<分区>

我在 C++ 中遇到一个奇怪的问题,我确定我遗漏了一些明显的东西,但无法弄清楚是什么。

该函数的目的是设置变量的某些位。从我的测试来看,这一切似乎都有效,但看起来操作的结果没有分配回变量。

uint16_t setBits(uint16_t target, unsigned int source, int offset, int bitCount) {
unsigned int mask = ~0;
mask = mask >> ((sizeof(mask) * 8) - bitCount);
int rightShift = (sizeof(mask) * 8 - bitCount - offset);
mask = mask << rightShift;
source = source << rightShift;
printHex(target);
printHex((target & ~mask) | (source & mask));
target = (target & ~mask) | (source & mask);
printHex(target);
return target;
}

uint16_t group;
group = 0xabcd;
unsigned int source = 0x12;
group = setBits(group, source, 4, 8);

这将打印:

0x0000abcd
0x0120abcd
0x0000abcd

这对我来说意味着 (target & ~mask) | (source & mask) 给出了正确的结果 (0x0120abcd),但是此结果未分配回 target(仍设置为 0x0000abcd)。知道我做错了什么吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com