2 * (c) Oleg Puchinin 2007
3 * graycardinalster@gmail.com
7 #ifndef DEFINE_MACROSES_H
8 #define DEFINE_MACROSES_H
10 /// \brief Макрос, определяющий экспортировать ли функцию.
13 /*! \brief Освободить память если занята затем установить в ноль.
14 * \param arga - указатель для освобождения.
17 #define DROP(arga) if (arga) { ::free (arga); arga = NULL; }
19 #define DROP(arga) if (arga) { free (arga); arga = NULL; }
22 /*! \brief Выделить память.
23 * \param arga - тип элементов.
24 * \param argb - нужное количество элементов.
26 #define CNEW(arga,argb) (arga *)malloc (sizeof (arga)*(argb))
28 /// \brief Эквивалент !strcmp.
29 #define EQ(arga, argb) (!strcmp (arga, argb))
30 /// \brief Эквивалент strcmp.
31 #define NE(arga, argb) (strcmp (arga, argb))
33 /*! Удалить последний символ в строке.
34 * \param arga - соответственно строка.
36 #define chop(arg1) arg1[strlen(arg1) - 1] = 0
37 #define LPCHAR(arg) ((char *) arg)
39 typedef void (*Dfunc_t
)(void *);
40 typedef void (*Dhash_f
)(char *, char *);
41 typedef unsigned char uchar_t
;