Seriously, in this day and age, why are we still stuck with C? There are battle tested container libraries in C++ for e.g.
I've seen too many C developers re-write C++ containers in C because they are afraid of C++, its madness.
The result is that you can easily link C code to almost any language, including C++, with almost any linker. But for C++, you usually have to use the linker that comes with the C++ compiler that compiled your library. You can write code in C++ that is as compatible as C, but you have to go out of your way to achieve that, extern "C" is only the beginning.
As a result, when the overhead of using C instead of a more complete language is not too great, I prefer to write my libraries in ANSI-C, for maximum compatibility.