Your numbering is confused. Probably 90% or more of C or C++
programmers use one of these three compilers. But there are a great
many compilers in daily use - a hundred or more, I'd guess, and that is
not counting variations like the dozens of different targets for gcc or
the very significantly different versions of different compilers (there
are people using gcc 2.7 today). Most of these are quite specialised,
or long out of date and only used because people working with serious
projects often insist on keeping the toolchains unchanged. But these
are still C compilers in use for real work. (And then, of course, there
are the hobby compilers or experimental compilers with a few users each
- $DEITY knows how many of these there are around.)
> Feel free to mention any others that matter that default to C99.
Why would "defaults to C99" have the slightest significance? Neither
gcc, clang nor MSVC have ever defaulted to C99. You might, I suppose,
ask for /support/ for at least most of C99 as an indication of being a
modern tool, which would certainly reduce the number of C compilers in
use somewhat.
> And
> if you're using a specialised C compiler to write to a microcontroller or
> other proprietary devices there's a good chance that
>
> A) It doesn't support C99 anyway
Most do support C99, at least the parts that are relevant to the target.
> B) You don't have a main() function at all
I have only twice seen an embedded C program without a main() function -
and in both cases, that was because I choose to write my own pre-C
startup code and didn't bother naming a function "main".
> C) There will be language extensions and modifications that stretch the
> definition of "C"
>
Most have language extensions of some sort, but that does not stop them
being C compilers. Certainly /some/ have enough extensions that are
important to coding, or enough non-conformities, or require such
particular coding styles to get efficient results, that they are
arguably a dialect of C or a C-like language. But most embedded
compilers are used mainly with standard C.