/** * @file kc_memory_entry.h * @brief KC メモリ管理 Entry サブモジュール * @copyright 2003 - 2023 Nomura Kei * @depends * kc.h * kc_memory_mark.h * * 本ヘッダファイルを直接 include せず、kc_memory.h を include してください。 */ #ifndef KC_MEMORY_ENTRY_H #define KC_MEMORY_ENTRY_H #include <kc.h> #include <kc_memory_mark.h> #ifdef __cplusplus extern "C" { namespace kc { using namespace std; #endif /** * メモリエントリ。 */ typedef struct KcMemoryEntry_ { int size; //!< 確保サイズ KcMemoryMark mark; //!< 確保メモリ状態 const char *file; //!< メモリ確保ファイル名 const char *func; //!< メモリ確保関数名 int line; //!< メモリ確保行番号 struct KcMemoryEntry_ *_prev; //!< 前の管理メモリポインタ struct KcMemoryEntry_ *_next; //!< 次の管理メモリポインタ void *padding[2]; //!< パディング void *data; //!< データ // 構造体末尾の配列に限りサイズ省略可能 (C99 : incomplete array) } KcMemoryEntry; #ifdef __cplusplus } // namespace kc } // extern "C" #endif #endif // KC_MEMORY_ENTRY_H