&gt;&gt;Not really, with compilers as sophisticated as they are and the spec as liberal with undefined behavior as it is. The C virtual machine that the spec defines is every bit as complex as any other virtual machine.<p>Having some undefined behavior in your code is just a bug, it has nothing to do with being complicated or compiling to machine code.
It&#x27;s not nearly as complex, in fact there are many people who understand quite well what the code compiles to. You can read the assembly as well and understand it for big parts of the code (oh, it compiled it to that, vectorized this but didn&#x27;t vectorized that etc.).
Try guessing what Java compiles to. It&#x27;s not even close to the same level of complexity.<p>&gt;&gt;I totally agree. In fact, I wouldn&#x27;t use C even for projects where a GC isn&#x27;t suitable, just because we have alternatives<p>The only serious alternative as of today is C++. Rust is a new untested language which no one wrote anything quite serious in yet and which offers a lot of trade-offs in exchange for being safer, everything else is slow as hell.