C语言标准保证了C语言在源代码级别的可移植性,只要你写的C程序遵守C语言标准,在所有支持改标准的编译器上都可以编译动过,这就是源代码级可移植。现在的编译器都支持C89标准了,较新的可以部分支持最新的C99标准。VC发展到8.0后对C99支持不错,gcc是目前对C99特性支持最完美的编译器。推荐给你的《C primer plus》的第五版是基于最新的C99标准的。
C89和C99的区别并不大,尤其对于初学者来说,等你学到一定的深度才会关注二者之间的区别。一本好的教材应该告诉你哪些特性是C99新加入的,庆幸的是《C primer plus》就是这样的好教材。
从K&R C到C89,再到C99,C标准逐步将C语言规范化,每一次的标准更新都会修补前一个标准的错误并且加入新特性,新标准有点像打补丁。
C89与C99的比较
http://www.
Are you Ready For C99?
http://www.
Incompatibilities Between ISO C and ISO C++
http://david.