/* ppps_int_queue.h [サンプルライブラリ] int型のキュー author: K.Y (Programming Place Plus) version 1.0.2 '2019/9/23 ・Webサイト側が C99規格へ対応したことに合わせて、コードを修正。 コメントスタイルと、変数宣言位置を変えた。 bool型を使う。 1.0.1 '2013/1/26 ・ppps_int_queue_try_dequeue関数を追加。 1.0.0 '2012/7/7 */ #ifndef PPPS_INT_QUEUE_H #define PPPS_INT_QUEUE_H #include /* キュー型 */ typedef struct PPPSIntQueue_tag* PPPSIntQueue; /* キューを作る 引数: size: 格納できる要素数 戻り値: 作成されたキュー。 使い終わったら、ppps_int_queue_delete関数に渡して削除する。 */ PPPSIntQueue ppps_int_queue_create(size_t size); /* キューを削除する 引数: queue: キュー */ void ppps_int_queue_delete(PPPSIntQueue queue); /* キューに要素を入れる 引数: queue: キュー value: 入れる要素 */ void ppps_int_queue_enqueue(PPPSIntQueue queue, int value); /* キューから要素を取り出す 引数: queue: キュー 戻り値: 取り出された要素 要素が空の場合の動作は未定義。 */ int ppps_int_queue_dequeue(PPPSIntQueue queue); /* キューから要素を取り出す (成否判定付き) 引数: queue: キュー p: 取り出された要素を受け取るアドレス。 戻り値: 要素を取り出せたら true、取り出せなかったら false を返す。 false が返された場合は、引数p が指す先には何も格納されない。 */ bool ppps_int_queue_try_dequeue(PPPSIntQueue queue, int* p); /* キューが空かどうか調べる 引数: queue: キュー 戻り値: キューが空であれば true を返し、空でなければ false を返す。 */ bool ppps_int_queue_is_empty(PPPSIntQueue queue); #endif