root/include/cmem.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef YACASL2_CMEM_H_INCLUDED
   2 #define YACASL2_CMEM_H_INCLUDED
   3 
   4 #include <stdio.h>
   5 #include <stdlib.h>
   6 #include <string.h>
   7 #include <assert.h>
   8 #include <stdbool.h>
   9 
  10 /**
  11  * @brief 配列のサイズを返すマクロ
  12  */
  13 #ifndef ARRAYSIZE
  14 #define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0]))
  15 #endif
  16 
  17 /**
  18  * @brief メモリを解放するマクロ
  19  */
  20 #ifndef FREE
  21 #define FREE(ptr) {free(ptr); ptr = NULL;}
  22 #endif
  23 
  24 /**
  25  * @brief mallocを実行し、0で初期化する
  26  *
  27  * メモリを確保できない場合はエラーを出力して終了
  28  *
  29  * @return なし
  30  *
  31  * @param size メモリーのサイズ
  32  * @param tag エラーメッセージなどで表示されるタグ
  33  */
  34 void *malloc_chk(size_t size, const char *tag);
  35 
  36 /**
  37  * @brief 領域の数とサイズを指定してメモリーを確保するcallocを実行する
  38  *
  39  * メモリを確保できない場合はエラーを出力して終了
  40  *
  41  * @return なし
  42  *
  43  * @param nmemb 領域の数
  44  * @param size 領域1個あたりのメモリーサイズ
  45  * @param tag エラーメッセージなどで表示されるタグ
  46  */
  47 void *calloc_chk(size_t nmemb, size_t size, const char *tag);
  48 
  49 /**
  50  * @brief malloc_chkを実行してメモリを確保し、コピーした文字列を返す
  51  *
  52  * @return コピーした文字列
  53  *
  54  * @param s 文字列
  55  * @param tag エラーメッセージなどで表示されるタグ
  56  */
  57 char *strdup_chk(const char *s, const char *tag);
  58 
  59 /**
  60  * @brief malloc_chkを実行してメモリを確保し、コピーした文字列の指定した長さの部分を返す
  61  *
  62  * @return コピーした文字列
  63  *
  64  * @param s 文字列
  65  * @param len 文字列の長さ
  66  * @param tag エラーメッセージなどで表示されるタグ
  67  */
  68 char *strndup_chk(const char *s, size_t len, const char *tag);
  69 
  70 /**
  71  * @brief 文字列の末尾から、改行と空白とタブを削除する
  72  *
  73  * @return なし
  74  *
  75  * @param s 文字列
  76  */
  77 void strip_end(char *s);
  78 
  79 /**
  80  * @brief 文字列から「'」以降の文字列をCASL IIのコメントとして削除する。「''」の場合は除く
  81  *
  82  * @return なし
  83  *
  84  * @param s 文字列
  85  */
  86 void strip_casl2_comment(char *s);
  87 
  88 /**
  89  * @brief 逆にした文字列を返す
  90  *
  91  * @return 逆にしたした文字列
  92  *
  93  * @param s 文字列
  94  */
  95 char *strrev(const char *s);
  96 
  97 #endif

/* [<][>][^][v][top][bottom][index][help] */