On Mon, 05 Feb 2007 13:33:33 +0000, Chris Hills wrote:
It is as good as most and better than quite a few I have been told by
people who should know.
Have these people _used_ MSVC or the included C library?
As of December 2006, MSVC supported zero of the C99 language features I
tried, including named array and structure initializers and compound
literals. stdint.h? None. stdbool.h? Negative.
As for the C library, arguably one of the only widely used and widely
desired added C function was snprintf(), and theirs is wholly
non-conforming, returning negative when output exceeded the buffer,
instead of the logical resulting length. The majority of code I've seen
[erroneously] assumes that snprintf() cannot fail at all. While not to
excuse such code, such practice shows what developers expect out of the
function. (In their defense, it's tidier to deal w/ the return type of
snprintf() as an unsigned integral for comparisons with (size_t).)
I think it's safe to say that Microsoft has basically given the finger to
the C99 specification. An attitude which, by some of the opinions in this
group, is not entirely out of the ordinary. As for me, I find the features
described above to eminently improve the readability and maintainability
of my code. So, I switched to MinGW (GCC port) for Windows development.