Campbell Ritchie wrote:C isn't completely standardised; for example the result ofis undefined and you can get different outputs from different compilers.
Actually, this is an example of standard undefined behavior; the C standard explicitly specifies that the effect of i = i++ is undefined: "Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression. ... The behavior is undefined in the following circumstances: A 'shall' or 'shall not' requirement that appears outside of a constraint is violated. ..."
It is, however, correct to say that some behaviors are not completely specified. Annex J.1 to the Standard, titled "Unspecified behavior", lists many of the behaviors that are not specified.
I will also recommend GCC. And IDE can be anything from Notepad++ to eclipse . I would highly recommend to use Makefile as it will you help in understanding the building process. Check out this link for makefile tutorial. It explains basics of makefile and gcc http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/