I’d like to see a TMP implementation in C. Or just a simple class where you can access the class object via “this” with constructor and destructor implementations. I am not even asking for inheritance… (and no, nested structs are not true inheritance → HAS-A vs IS-A)
And ofc does C generate more low level code than C#, because C# generates IL code which is JIT compiled by the .Net or Mono runtime.
C++ compiles to the same native code as C does. Only symbol names in assemblies can be different because of C++ features that do not exist in C.
Fun fact: early C++ compilers simply transpiled to C code