相关疑难解决方法(0)

C / C ++后递增不止一个

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

// assume buffer is of type unsigned char *
read_ptr(buffer+(position++))
Run Code Online (Sandbox Code Playgroud)

很好,但是如何将位置增加2或4?我无法让+=操作员后期递增,是吗?

原因是,我有一个很糟糕的表达式要评估,同时要增加位置变量。

我想我想出了自己的解决方案。我很确定它能起作用。每个人都会讨厌它,因为这不是易读的代码。

read_ptr(buffer+(position+=4)-4)
Run Code Online (Sandbox Code Playgroud)

经过一点测试以确保它做对了之后,我将其放入宏中。

结论:

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

c c++ operators post-increment

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

c++ ×1

operators ×1

post-increment ×1