通番管理モジュール。
c-modernization-kit sample team
1.0.0
2026/03/04
Copyright (C) CompanyName, Ltd. 2026. All rights reserved.
void seqnum_init ( uint32_t *seq, uint32_t initial )通番を初期化します。
uint32_t seqnum_next ( uint32_t *seq )通番を 1 進めて次の値を返します。
uint32_t の最大値に達した場合は 0 に折り返します。
インクリメント後の通番。seq が NULL の場合は 0 を返します。
int seqnum_is_newer ( uint32_t a, uint32_t b )通番 a が通番 b より新しいかどうかを判定します。
uint32_t 折り返しを考慮した比較を行います。
差が UINT32_MAX / 2 以下の場合に「a が新しい」と判定します。
a が b より新しい場合は 1、そうでない場合は 0 を返します。
int seqnum_in_window ( uint32_t seq, uint32_t base, uint16_t window_size )通番 seq がウィンドウ [base, base + window_size) に含まれるか判定します。
ウィンドウ内の場合は 1、ウィンドウ外の場合は 0 を返します。