inline.h:
#ifndef INLINE
#if defined(GCC) /* && major > 2 || (major == 2 && minor >= 7), or whenever inlines started being supported well */
#define INLINE inline extern
#endif
#endif
#ifdef INLINE
inline exterm void
func(void)
{
/* body */
}
#else
/* For non-inlining compilers */
extern void func(void);
#endif
inline.c:
#define INLINE
#include "inline.h"
#undef INLINE
Not TOO bad, I don't think.