Difference between C 8 bit 16-bit 32-bit compilers

krishna picture krishna · Apr 5, 2013 · Viewed 13.8k times · Source

This question may be redundant, but I didn't found exact answer.

What is the Difference between C 8 bit 16-bit 32-bit compilers.

how the .exe differ generated by different compilers for same code...........

Answer

Hiren Pandya picture Hiren Pandya · Apr 5, 2013

16 bit compilers compile the program into 16-bit machine code that will run on a computer with a 16-bit processor. 16-bit machine code will run on a 32-bit processor, but 32-bit machine code will not run on a 16-bit processor. 32-bit machine code is usually faster than 16-bit machine code.

With 16 bit compiler the type-sizes (in bits) are the following:

short, int: 16 
long: 32 
long long: (no such type) 
pointer: 16/32 (but even 32 means only 1MB address-space on 8086) 

With 32 bit compiler the object-sizes (in bits) are the following:

short: 16 
int, long: 32 
long long: 64 
pointer: 32 

With 64 bit compiler the object-sizes (in bits) are the following:

short: 16 
int: 32 
long: 32 or 64 (!) 
long long: 64 
pointer: 64 

[While the above values are generally correct, they may vary for specific Operating Systems. Please check your compiler's documentation for the default sizes of standard types]

Following can explain a little bit more... http://cboard.cprogramming.com/c-programming/96536-16-bit-compilar-32-bit-compilar.html