gpt4 book ai didi

c++ - 解决 C++ 'target of assignment not really an lvalue' 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:20 25 4
gpt4 key购买 nike

给定这段代码:

void FrMemCopy(void *to, const void *from, size_t sz)
{
size_t sz8 = sz >> 3;
size_t sz1 = sz - (sz8 << 3);

while (sz8-- != 0) {
*((double *)to)++ = *((double *)from)++;
}

while (sz1-- != 0) {
*((char *)to)++ = *((char *)from)++;
}
}

我在 while 循环内的两行收到 target of assignment not really an lvalue 警告。

谁能打破这些界限?

强制转换然后增量?

什么是更简单的写法?

错误是什么意思?

最佳答案

它不喜欢 *((char*)to)++ 语句。

试试这个:

void FrMemCopy(void *to, const void *from, size_t sz)
{
size_t sz8 = sz >> 3;
size_t sz1 = sz - (sz8 << 3);
double * tod = (double *) to;
double * fromd = (double *) from;
while (sz8-- != 0) {
*(tod++) = *(fromd++);
}

char * toc = (char *) tod;
char * fromc = (char *) fromd;
while (sz1-- != 0) {
*(toc++) = *(fromc++);
}
}

关于c++ - 解决 C++ 'target of assignment not really an lvalue' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13143758/

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