cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
|
構造化データ操作 共通関数 I/Fヘッダファイル [詳解]
#include "cmnclib/Common.h"
データ構造 | |
struct | tag_CmnDataListItem |
struct | tag_CmnDataList |
struct | _tag_CmnDataStackItem |
struct | _tag_CmnDataStack |
struct | _tag_CmnDataBuffer |
型定義 | |
typedef struct tag_CmnDataListItem | CmnDataListItem |
typedef struct tag_CmnDataList | CmnDataList |
typedef struct _tag_CmnDataStackItem | CmnDataStackItem |
typedef struct _tag_CmnDataStack | CmnDataStack |
typedef struct _tag_CmnDataBuffer | CmnDataBuffer |
関数 | |
D_EXTERN CmnDataList * | CmnDataList_Create () |
単方向リスト作成 [詳解] | |
D_EXTERN void | CmnDataList_Free (CmnDataList *list, void *method) |
単方向リスト解放 [詳解] | |
D_EXTERN void | CmnDataList_Add (CmnDataList *list, void *data) |
単方向リスト要素追加 [詳解] | |
D_EXTERN void * | CmnDataList_Get (CmnDataList *list, int index) |
単方向リスト要素取得 [詳解] | |
D_EXTERN CmnDataStack * | CmnDataStack_Create () |
スタック作成 [詳解] | |
D_EXTERN void | CmnDataStack_Free (CmnDataStack *stack, void *method) |
スタック解放 [詳解] | |
D_EXTERN void | CmnDataStack_Push (CmnDataStack *stack, void *data) |
スタックに要素追加 [詳解] | |
D_EXTERN void * | CmnDataStack_Pop (CmnDataStack *stack) |
スタックから要素取得 [詳解] | |
D_EXTERN CmnDataBuffer * | CmnDataBuffer_Create (size_t bufSize) |
自動領域拡張バッファ作成 [詳解] | |
D_EXTERN int | CmnDataBuffer_Append (CmnDataBuffer *buf, const void *data, size_t len) |
自動領域拡張バッファへのデータ追加 [詳解] | |
D_EXTERN int | CmnDataBuffer_Set (CmnDataBuffer *buf, const void *data, size_t len) |
自動領域拡張バッファへのデータ設定 [詳解] | |
D_EXTERN void | CmnDataBuffer_Delete (CmnDataBuffer *buf, size_t len) |
自動領域拡張バッファのデータ削除 [詳解] | |
D_EXTERN void | CmnDataBuffer_Free (CmnDataBuffer *buf) |
自動領域拡張バッファの解放 [詳解] | |
構造化データ操作 共通関数 I/Fヘッダファイル
構造化データ操作系共通関数を使用するためのI/Fヘッダファイル。
構造化データ操作系の共通関数を使用する場合は、このヘッダファイルを読み込むこと
typedef struct _tag_CmnDataBuffer CmnDataBuffer |
自動領域拡張バッファ
typedef struct tag_CmnDataList CmnDataList |
単方向リスト(線状リスト)
typedef struct tag_CmnDataListItem CmnDataListItem |
単方向リストの要素
typedef struct _tag_CmnDataStack CmnDataStack |
スタック
typedef struct _tag_CmnDataStackItem CmnDataStackItem |
スタックの要素
D_EXTERN int CmnDataBuffer_Append | ( | CmnDataBuffer * | buf, |
const void * | data, | ||
size_t | len | ||
) |
自動領域拡張バッファへのデータ追加
自動領域拡張バッファの末尾にデータを追加する。
buf | 自動拡張バッファ |
data | 追加するデータ |
len | バッファに書き込むデータの長さ |
D_EXTERN CmnDataBuffer* CmnDataBuffer_Create | ( | size_t | bufSize | ) |
自動領域拡張バッファ作成
自動領域拡張バッファを新規に作成する。
bufSize | 初期バッファサイズ。0を指定した場合はデフォルトのバッファサイズが適用される。 |
D_EXTERN void CmnDataBuffer_Delete | ( | CmnDataBuffer * | buf, |
size_t | len | ||
) |
自動領域拡張バッファのデータ削除
自動領域拡張バッファのデータを一部もしくは全部削除する。
buf | 自動拡張バッファ |
len | 削除する長さ |
D_EXTERN void CmnDataBuffer_Free | ( | CmnDataBuffer * | buf | ) |
自動領域拡張バッファの解放
自動領域拡張バッファが不要になった場合、メモリ解放のために必ず本関数を呼び出すこと。
buf | 自動拡張バッファ |
D_EXTERN int CmnDataBuffer_Set | ( | CmnDataBuffer * | buf, |
const void * | data, | ||
size_t | len | ||
) |
自動領域拡張バッファへのデータ設定
自動領域拡張バッファにデータを設定する。もとのデータは上書かれる。
buf | 自動拡張バッファ |
data | 設定するデータ |
len | バッファに書き込むデータの長さ |
D_EXTERN void CmnDataList_Add | ( | CmnDataList * | list, |
void * | data | ||
) |
単方向リスト要素追加
単方向リストの末尾に要素を追加する。 引数が不正な場合は何もしない。
list | (I/O) 要素を追加するリストへのポインタ |
data | (I) 追加する要素(データ) |
D_EXTERN CmnDataList* CmnDataList_Create | ( | ) |
単方向リスト作成
単方向リストを新規に作成する。
D_EXTERN void CmnDataList_Free | ( | CmnDataList * | list, |
void * | method | ||
) |
単方向リスト解放
単方向リストを破棄し、メモリ領域を解放する
list | (I/O) 解放する単方向リストへのポインタ |
method | (I) リスト内で保持しているデータを解放する関数へのポインタ。 (単にmalloc関数を使用して確保したメモリなら、freeを指定すれば良い) 指定する関数のI/Fは、以下の条件を満たしていること。
(グローバルメモリや関数ポインタをリストとして格納する場合などにNULLを指定する) |
D_EXTERN void* CmnDataList_Get | ( | CmnDataList * | list, |
int | index | ||
) |
単方向リスト要素取得
単方向リストから要素(データ)を取得する
list | (I) 要素を取得するリストへのポインタ |
index | (I) 取得する要素のインデックス(最初の要素を0とする) |
D_EXTERN CmnDataStack* CmnDataStack_Create | ( | ) |
スタック作成
スタックを新規に作成する。
D_EXTERN void CmnDataStack_Free | ( | CmnDataStack * | stack, |
void * | method | ||
) |
スタック解放
スタックを破棄し、メモリ領域を解放する
list | (I/O) 解放するスタックへのポインタ |
method | (I) スタック内で保持しているデータを解放する関数へのポインタ。 (単にmalloc関数を使用して確保したメモリなら、freeを指定すれば良い) 指定する関数のI/Fは、以下の条件を満たしていること。
(グローバルメモリや関数ポインタをスタックに格納する場合などにNULLを指定する) |
D_EXTERN void* CmnDataStack_Pop | ( | CmnDataStack * | stack | ) |
スタックから要素取得
スタックから要素(データ)を取り出す。
stack | (I) 要素を取得するスタックへのポインタ |
D_EXTERN void CmnDataStack_Push | ( | CmnDataStack * | stack, |
void * | data | ||
) |
スタックに要素追加
スタックに要素を追加する。 引数が不正な場合は何もしない。
list | (I/O) 要素を追加するスタックへのポインタ |
data | (I) 追加する要素(データ) |