Because C hasn&#x27;t been a subset of C++ since C99, there are plenty of case where trying to do C in C++ is awkward or just not possible with standard C++:<p>First, you&#x27;d have to wrap your header inclusions in `extern &quot;C&quot;` to disable mangling, then you would have to make sure you static_cast all your pointers where normally `void*` conversions would have done its job.<p>Furthermore, all interfaces relying on designated initializers and compound literals are broken unless you decide to compile in nonstandard GNU C++.<p>And there are more incompatibilities, such as using `static` or `const` in array parameter declarations or using VLA in macros which are not recognized by C++.<p>It&#x27;s all about using the right tool for the right job, ultimately.