Does the ability of making a C compiler on a particular machine mean
the machine-independent of C computer language on this kind of machine?
No. There are quite a number of parts of C that are implementation
specified. To take one example, the behaviour of right-shifting
a negative value is up to the implementation; another example
is that the size (and range) of 'int' can vary between machines.
Experienced programmers know where the dirty laundry is, and
write so that their program will work on all systems their code
is likely to be ported to. (Sometimes it just isn't worth
writing 100% portable code, if the chance that the code will
be taken to a very unusual machine is essentially none.)