Re: Ping Tom Gardner et. al.

Oct 09, 2017 1 Replies


The real nasty is that frequently C/C++ compilers


> implement /a/ subset of a standard, where the subset
> depends on what is convenient and what the compiler
> writers understand.
>
> ISTR a triumphant announcement that the first complete
> C++ compiler was available, 4/5/6 years after the
> standard was published.

Around 2007 I was discovering that while GCC was a good win32 C99 compiler, there was no C99 support in MSVCRT.DLL, so C99 language features worked, but C99 library features did not.

This email has not been checked by half-arsed antivirus software

MSVC has famously had terrible C99 support. It has supported some C99 language features - primarily those that overlap with new features in C++. But MSVC developers have always regarded C as a dead language supported "as is" for old code, rather than with new features for new code. And thus the standard C runtime library from MSVC has had no C99 support other than as needed for C++.

I believe that current versions of MSVC are better, with more support in the libraries and with a move to clang for the C front end (clang has full C99 and C11 support). But I am not an MSVC user, so I don't have details.

When using gcc on Windows, you can use libraries other than MSVC's dll. Not only will you get better C99 support, you will get significantly faster code - using a DLL for basic library support (rather than a statically linked library, or at least a decent linking system like on

*nix systems) is going to give you massive overheads.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required