If you want to write portable C code, then I'd suggest you to write in C89 (old ANSI C standard). This standard is supported by most compilers. If you're looking for C99, then you need Intel C Compiler. It has full C99 support and it produces fast binaries.
GCC supports some new things of C99. They created a table about the status of C99 features. Probably the most usable feature of C99 is the variable length array, and GCC supports it now.
Most commercial (like MSVC) compilers are focused on C++, so they won't support C99 in the future neither.