CC386 is a general-purpose 32-bit C compiler. It is not an optimizing compiler but given that the code generation is fairly good. There are two versions; one is for MSDOS/DPMI and one is for Win32. The Win32 version has a full-blown IDE capable of editing, building, and debugging windows programs included with it. However at this time debugging support for MSDOS is rudimentary at best and there is no IDE for DOS.
Some of the recently added features are as follows:
* compiles most C99 constructs now (in C99 compatibility mode)
* address various compatibility issues and bugs
* add new windows headers
* hardware breakpoints
* support for debugging NASM assembly code
* updated far pointer support and segment register access
* added typeof keyword
* added _CRX, _DRX, _TRX direct access to registers
* added _fault keyword, like _interrupt but pops exception code
* updated to latest NASM version; modified NASM for virtual C++ segments
* added minimal far pointer support
* added better assembly language support for segmentation
* added direct access to segment registers, e.g. _DS, _ES