C++ was based on C and retains a great deal of the functionality. C++ does not retain complete source-level compatibility with C. There are a few gotchas for C++ programmers trying to write C code, and C programmers trying to compile with a C++ compiler.