バッファからバイトを読み取っています。しかし、時々私が読んでいるのは単語またはそれ以上です。
// assume buffer is of type unsigned char *
read_ptr(buffer+(position++))
それは問題ありませんが、位置を 2 または 4 ずつポストインクリメントするにはどうすればよいですか? +=
オペレーターにポストインクリメントをさせる方法はありませんよね?
理由は、評価したいこの大きなひどい式があり、同時に位置変数をインクリメントしているためです。
独自の解決策を思いついたと思います。私はそれがうまくいくと確信しています。ただし、これはあまり読みやすいコードではないため、誰もがそれを嫌うでしょう。
read_ptr(buffer+(position+=4)-4)
次に、これを少しテストして正しいことを確認した後、これをマクロにします。
結論は:
これをしないでください。これは保守不可能なコードを生成するようなものであるため、これは悪い考えです。しかし...前インクリメント演算子を後インクリメント演算子に変換するのは非常に簡単です。