I wouldn't consider Microsoft Visual C++ a valid C compiler. It supports C89, which mostly has subset compatibility with C++. However, since C89, two more standards have been adopted: C99 and C11. It's unreasonable to suggest that a C compiler can't compile C code from 1999. A valid C99 compiler will compile this code correctly.
In short, use a C compiler to compile C code and a C++ compiler to compile C++ code. If you need to link some C code to a C++ project, compile your C code with a C compiler and link it to your C++ project using your C++ linker.