I can write perfectly portable C code, but MSVC will refuse to compile it because it thinks C hasn't been updated in over 20 years. It gets some new functions as a result of C++ inheriting them, but anything from C99 or C11 that needs actual syntax/parser changes is out -- no restrict or inline support, no _Bool, _Atomic, _Alignas, _Static_assert, _Generic, etc. I remember reading a blog post where the MSVC dev team recommends using MinGW for modern C support.Graf Zahl wrote:Make that "cross platform support" in the sense that "we do not want to write cross-platform code but still support all platforms."
In other words: It is often used as a crutch to make code work that isn't really portable.
I was interested in that Clang frontend for MSVC project, which would've also worked to support modern C code in the MSVC toolchain, but last I heard Microsoft cancelled/stopped working on it.