gpt4 book ai didi

c++ - C/C++ 后置递增不止 1

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:33 24 4
gpt4 key购买 nike

我正在从缓冲区读取字节。但有时我正在阅读的是一个单词或更长的时间。

// assume buffer is of type unsigned char *
read_ptr(buffer+(position++))

这很好,但我怎样才能将位置递增 2 或 4?我无法让 += 运算符后递增,是吗?

原因是,我有一个大而可怕的表达式,我想计算它,同时递增位置变量。

我想我想出了自己的解决方案。我很确定它有效。但是每个人都会讨厌它,因为这不是非常可读的代码。

read_ptr(buffer+(position+=4)-4)

然后我会在稍微测试一下以确保它做正确的事情之后将它变成一个宏。

结论:

不要这样做。这只是一个坏主意,因为这种事情会生成无法维护的代码。但是......事实证明,将任何预递增运算符转换为后递增运算符确实非常容易。

最佳答案

how can I post-increment position by 2 or 4?

您不能将变量后递增 2 或 4,但您可以使用以下内容(在您的情况下)

read_ptr(缓冲区+位置);位置 += 2;

关于c++ - C/C++ 后置递增不止 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5360627/

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