A 16 bit application is software for MS-DOS or Microsoft Windows which originally ran on the 16-bitIntel 8088 and Intel 80286microprocessors. These used a segmented address space to extend the range of addresses from what is possible with just a 16-bit address. Programs with more than 64 kilobytes of code or data therefore had to waste time switching between segments. Furthermore, programming with segments is more difficult than programming in a flat address space. Segmented address space is the cause of the memory models in the C programming language and C++ that many programmers feel are inelegant.