Meanwhile, in terms of C11 [update: actually also from C99] I actually wrote a function with a signature like
void func(int arg[static 3]);
but later removed it because (a) the generated code was the same, and (b) rather than increasing clarity and self-documentation, it caused confusion; even when you're familiar with the feature, it never stops looking like a syntax error.They have changed their view regarding C, but the actual work is customer driven.
https://www.reddit.com/r/cpp/comments/75q5wc/visual_studio_2...
I mainly still stick to variable declaration at the beginning of the block out of habit but it would be a pain for me to go back to C89 and forsake all these other nice features.
For essential features, well if one uses C it's usually to have fine-graded control of memory use and allocation patterns. Then C11 _Alignas, and _Alignof are pretty essential. Yes you can do that with platform/compiler specific macros without C11, but it's nice to be able to avoid that.
They now advise to use clang directly, since its Windows support has been improved.