循環バッファーを実装しましたが、ラップアラウンドを適切に処理しながら、バッファーポインターを更新する簡潔な手段が必要です。
サイズ10の配列を想定すると、私の最初の応答は次のようになります。
size_t ptr = 0;
// do some work...
p = ++p % 10;
静的分析、およびgcc -Wall -Wextraは、シーケンスポイント違反による不特定の動作について、私の手首を正しく叩きました。明らかな修正は次のようなものです。
p++;
p %= 10;
しかし、私はこの操作を「カプセル化」するためのより簡潔なもの(つまり、ワンライナー)を探していました。提案?p++以外; p%= 10; :-)