31 lines
579 B
C
31 lines
579 B
C
|
#ifndef FALSE
|
||
|
#define FALSE 0
|
||
|
#endif
|
||
|
#ifndef TRUE
|
||
|
#define TRUE !FALSE
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* hack to emulate flexible array member of C99
|
||
|
*
|
||
|
* Example
|
||
|
*
|
||
|
* struct header {
|
||
|
* ...
|
||
|
* int data[FLEXIBLE_SIZE];
|
||
|
* };
|
||
|
*
|
||
|
* ...
|
||
|
*
|
||
|
* size_t n = 123;
|
||
|
* struct header *my_header = malloc(SIZEOF_FLEXIBLE(struct header, data, n));
|
||
|
*
|
||
|
*/
|
||
|
#include <stddef.h>
|
||
|
#define FLEXIBLE_SIZE 1
|
||
|
#define SIZEOF_FLEXIBLE(type, member, length) \
|
||
|
( offsetof(type, member) + (length) * sizeof ((type *)0)->member[0] )
|
||
|
|
||
|
#define MIN(a, b) ((a) < (b) ? (a) : (b))
|
||
|
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|