* pointer casting and the macro-defined callbacks provide per-variable casting
* before deferring to the underlying type-specific callbacks. NB: It is
* possible to place a "static" in front of both the DECLARE and IMPLEMENT
- * macros if the functions are strictly internal. To keep text-editors happy,
- * the macro deliberately doesn't define a trailing semi-colon - so the macro
- * can be placed just like a regular function declaration, with an optional
- * "static" prefix and trailing simi-colon. */
+ * macros if the functions are strictly internal. */
/* First: "hash" functions */
#define DECLARE_LHASH_HASH_FN(f_name,o_type) \
- unsigned long f_name##_LHASH_HASH(void *)
+ unsigned long f_name##_LHASH_HASH(void *);
#define IMPLEMENT_LHASH_HASH_FN(f_name,o_type) \
unsigned long f_name##_LHASH_HASH(void *arg) { \
o_type a = (o_type)arg; \
/* Second: "compare" functions */
#define DECLARE_LHASH_COMP_FN(f_name,o_type) \
- int f_name##_LHASH_COMP(void *, void *)
+ int f_name##_LHASH_COMP(void *, void *);
#define IMPLEMENT_LHASH_COMP_FN(f_name,o_type) \
int f_name##_LHASH_COMP(void *arg1, void *arg2) { \
o_type a = (o_type)arg1; \