You compile C to native machine code, that runs directly on the microprocessor that you've compiled it for. In principle, you could write a C program that does not depend on any library at all (not even on the standard C library) - you can't do that with Java, because you always need the Java runtime environment (JVM + libraries) to run Java bytecode. When you write software in Java, it has to run on top of the Java runtime environment, so in that sense you could call it a "platform".
Ulf Dittmer wrote:As an aside, C does not come "with libraries that almost achieve the same functionalities that the java core libraries" - the standard C libraries are tiny compared with Java's. For example, no GUI functionality is included.
Indeed, the
standard C library is very small and does not even include basic things like collection classes.