C is very near to Asm and C code is first translated into asm before compiling and linking. So asm is involved.But many times asm is found to machine dependent(i.e it works on some machines and errs on others even from the same family of PCs like IBM family and x86 processors(x>=3)).How does then C become machine independent ?