作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在从缓冲区读取字节。但有时我正在阅读的是一个单词或更长的时间。
// 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/
我是一名优秀的程序员,十分优秀!