Question: It's over ten years since C99 was published. However, so far there have been few, if any, compilers that have support for all the new features of C99. Why?

BTW: Are there really any compilers that fully comply with C99?

Answer: 
According to [Wikipedia: C99 Implementations](http://en.wikipedia.org/wiki/C99#Implementations), Most popular compilers (except Visual Studio) have support for most but not all C99 features(like gcc or clang), but, yes, some compilers have already fully comply with C99.

I think one of the reasons is that some of the C99 features are not useful to some compiler vendors. The newest standard, C11, on the other hand, allows implementations to not support certain parts of the standard — including some that had been mandatory to support in C99, like complex types and variable length arrays. (See C11 §6.10.8.3 *Conditional feature macros*)
> 
> BTW: Are there really any compilers that fully comply with C99?
> 
> 
> 

The two major public domain compilers clang and gcc are as far as one can get. There maybe some small issues that remain in the C library, but the C library is usually a different project from the compilers.

clang has C99 as its default and is moving relatively quickly towards C11.

gcc with flag `-std=c99` is compliant for any practical purposes.