Согласно Wikipedia: C99 Implementations, самые популярные компиляторы (кроме Visual Studio) имеют поддержку большинства, но не всех функций C99 (например, gcc или clang), но, да, некоторые компиляторы уже полностью соответствуют C99.
Я думаю, что одна из причин заключается в том, что некоторые функции C99 не полезны для некоторых поставщиков компиляторов. Новейший стандарт C11, с другой стороны, позволяет реализациям не поддерживать определенные части стандарта, включая некоторые, которые были обязательными для поддержки на C99, например, сложные типы и массивы переменной длины. (См C11 §6.10.8.3 условных функций макросов)
IME, большинство основных компиляторов C поддерживают большинство C99. Просто Microsoft отказывается его поддерживать. –
Полная поддержка очень трудно найти. C11, возможно, повезло больше, он не одобрял некоторые противоречивые функции C99 от обязательного до факультативного. Хотя вам придется задаться вопросом, что может быть точкой дополнительной функции в языковом стандарте, и тем не менее вы не можете рассчитывать, когда важна переносимость. –