.I 13 1
but, in recent years, have become commendably objective and even-handed.
.D 14 1
.I 126 1
including MFC 2.0 as previously noted. SC++ can generate true 32-bit code and
.D 127 1
.I 139 1
6.1, the bugs now appear mostly fixed. With the 6.1 release, support of DOS
.D 140 1
.I 151 11
Watcom has traditionally been the technological industry leader, performing
feats of optimization and floating point speed other vendors only dreamt of.
The cost has been compile speed, which has been described (somewhat unfairly)
as glacial. For all its technical excellence, WC++ is still a niche market
compiler like SC++. As such, it's 3rd party support is poor, but many have
found that Microsoft C libraries can be made to work with WC++, often with
nothing more than recompilation. As other compilers (most notably VC++ and
SC++) have advanced, WC++'s technological lead has diminished and even been
reversed for some applications. Like SC++, and unlike BC++ and VC++, WC++
provides documented support for embedded systems work, although not to nearly
the same degree as Metaware (see below).
.D 152 8
.I 204 3
and contributes to the frugal use of run-time memory. Unfortunately, the code
generated by the compiler - even with full optimization - is typically not
of the same quality as the library modules.
.D 205 2
.I 214 21
Available from the Free Software Foundation (FSF), GCC and G++ are two of
only three compilers listed here available for free (the other is Micro-C).
Originally written for Unix systems, there are several DOS and OS/2 ports
available. All of the DOS ports require some sort of DOS extender technology
built-in in order to work in DOS's limited memory.  OS/2 ports obviously
don't share this limitation. The EMX port for OS/2 is among the best and is
quite popular among OS/2 programmers. Along with SC++, WC++, and HC++, the
gnu compilers round out the list of full ISO/ANSI/ARM compilers with explicit
support for embedded systems.

Performance is decent, but not earth-shattering, and executables - especially
small utilities - tend to exhibit some bloat. This may be overcome by using
some non-standard compiler features unique to FSF compilers at the expense of
portability.

All GNU software carries the FSF's "GNU General Public License". This is
their infamous "copyleft" license that guarantees their software tools remain
free, yet imposes restrictions on redistribution and commercial distribution
of the GNU tools and software developed with them. If you plan to use one of
these to write commercial code, be sure and read the license agreement *very*
closely.
.D 215 12
.I 242 4
Secondly, Dave Dunfield recently made the DOS version of Micro-C freeware.
You can use it without restriction or licensing fees to create DOS programs.

Third, the source code (available when you register the shareware version) is
.D 243 1
.I 246 6
Finally, the PC library includes support for writing TSR's, interrupt-driven
serial I/O, and screen windowing. Amazingly, it also sports an optimizer, but
requires MASM or equivalent for compiling PC applications.

How does Dave provide such a nifty tool for free? Simple - he makes his money
off of Micro-C by producing cross-assemblers for a variety of microprocessors
.D 247 1
.I 249 1
code.
.D 250 3
.I 278 5
If price is your concern, Mix Power C costs less to buy than PCC does to
register and offers better performance along with the ANSI compliance that
PCC lacks.  If you plan on using an unregistered copy, Gnu C/C++ is vastly
superior and is legally free. If you're attracted to its tight, fast code and
can live with quirks and without ANSI compliance, go with Dunfield Micro-C.
.D 279 5
