blob: 052a106942da4435ba65eb9ff8ad5a27fc0c270a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#define nelem(arr) (sizeof(arr)/sizeof(arr[0]))
#define min(a, b) ((a < b) ? a : b)
#define max(a, b) ((a > b) ? a : b)
#define expect(x) do { \
if (!(x)) { \
fprintf(stderr, "Fatal error: %s:%d: assertion '%s' failed\n", \
__FILE__, __LINE__, #x); \
abort(); \
} \
} while (0)
void free_arr(void **arr, int n);
int lsearch(const void *key, const void *base, size_t n, size_t size, int (*cmp)(const void *keyval, const void *datum));
|