Advertisement
Guest User

Untitled

a guest
Jun 12th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.76 KB | None | 0 0
  1. #define Ls_res(l) (*(size_t *)((void **)(l) + 0))
  2. #define Ls_siz(l) (*(size_t *)((void **)(l) + 1))
  3. #define Ls_itm(l) ((void **)(l) + 2)
  4. #define Ls_new(l) {                         \
  5.     (l) = malloc(0x102 * sizeof(void *));   \
  6.     Ls_res(l) = 0x100;                      \
  7.     Ls_siz(l) = 0;                          \
  8. }
  9. #define Ls_app(l, v) {                                                      \
  10.     if (Ls_siz(l) == Ls_res(l))                                             \
  11.         (l) = realloc((l), ((Ls_res(l) += 0x100) + 2) * sizeof(void *));    \
  12.     Ls_itm(l)[Ls_siz(l)++] = (v);                                           \
  13. }
  14. #define Ls_fnc(l, f) {                  \
  15.     for (int i = 0; i < Ls_siz(l); ++i) \
  16.         f(Ls_itm(l)[i]);                \
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement