Ah, OK. I was confused how that was supposedly used. I suppose header-only C libs are somewhat a pain, as inline does not work the same way as in C++, and static may cause code bloat when inlining does not happen in multiple TUs.
C Header-only libraries do not exist. It's just `#include "foo.c"` with extra steps.
`#include "foo.c"` would repeat the implementation in multiple object files which is both wasteful and, if not using static, create conflicting symbols.
You missed the "with extra steps".
#define XXX_IMPL
#include "xxx.h"
And
#include "xxx.c"
Are exactly the same trash.
No they are not, the former allows you to include the header file in multiple .c files, the latter does not.