Hello, I'm novice in computer science , please bear with me.
I have studied some embedded systems and now I have just started learning PC programming in C . My question is when one complies a C program it is converted into a binary file right? That is machine language, 1s and 0s executable by the processor? But if that is the case then why must we use different compilers for different operating systems running on the same platform? A program compiled for Windows should run on Linux too? Why is that not so?