title: What is the difference between C, C99, ANSI C and GNU C?
body: <p>I have started programming practice on <a href="http://www.codechef.com/problems/easy?sort_by=SuccessfulSubmission&amp;sorting_order=desc" rel="noreferrer">codechef</a> and have been confused by the <strong>difference between C and C99. What does C mean here? Is it C89?</strong> Check the languages at the bottom of <a href="http://www.codechef.com/submit/TEST" rel="noreferrer">this submit</a>. It contains both C and C99.</p>
  
  <p>I found on the internet something called GNU C. Is there a different C for linux/unix systems? Are these compliant to the C standards by ANSI? I have also read in some places "C99 strict". What is this?</p>
  
  <p>Are there any other different standards of C in use? Is there something called C 4.3.2 or is it the gcc version in current use?</p>
  
  <p>EDIT:<br/></p>
  
  <p><a href="https://stackoverflow.com/a/3783805/2235567">This</a>, <a href="https://stackoverflow.com/questions/1739656/c99-backward-compatibility">This</a>, <a href="http://www.linuxquestions.org/questions/programming-9/gnu-c-and-ansi-c-520509/" rel="noreferrer">This</a> helped. I'll search more and edit the things that are left unanswered.</p>
  
  <p>I am not a programming newbie. I know what C language is. I know that there are the different C standards by ANSI like C89, C99 and C11.</p>