The following table shows correspondences between C/C++ and Pascal numerical types.

References are:
- FPC Reference guide (v1.0.8).
- The C Library Reference Guide, by Eric Huss.
- BeAPI headers.


C/C++ <-> BeAPI <-> Pascal
==========================
signed char        = int8   = Shortint;
unsigned char      = unit8  = Byte;

short int          = int16  = Smallint;
unsigned int       = unit16 = Word;

int                =        = Integer;
unsigned int       = uint   = Cardinal;
long               = int32  = Longint;
unsigned long      = uint32 = Longword;
long long          = int64  = Int64;
unsigned long long = uint64 = QWord;

float              =        = Single;
double             =        = Double;
long double        =        = Extended;


C/C++ Types
===========
Type          |       Size         |  Range
--------------------------------------------
unsigned char | 8 bits  (1 byte)   | 0 to 255
char          | 8 bits  (1 byte)   | -128 to 127
unsigned int  | 16 bits (2 bytes)  | 0 to 65,535
short int     | 16 bits (2 bytes)  | -32,768 to 32,767
int           | 16 bits (2 bytes)  | -32,768 to 32,767
unsigned long | 32 bits (4 bytes)  | 0 to 4,294,967,295
long          | 32 bits (4 bytes)  | -2,147,483,648 to 2,147,483,647
float         | 32 bits (4 bytes)  | 1.17549435 * (10^-38) to 3.40282347 * (10^+38)
double        | 64 bits (8 bytes)  | 2.2250738585072014 * (10^-308) to 1.7976931348623157 * (10^+308)
long double   | 80 bits (12 bytes) | 3.4 * (10^-4932) to 1.1 * (10^4932)


FPC Pascal Types
================
Type     | Size    | Range
---------------------------
Byte     | 8 bits  | 0..255
ShortInt | 8 bits  | -128..127
Word     | 16 bits | 0..65535
SmallInt | 16 bits | -32768..32767
LongWord | 32 bits | 0..4294967295
LongInt  | 32 bits | -2147483648..2147483647

//[*]These two depends on the compiler mode and platform.
Integer  | 16 32 64 | either smallint, longint or int64
Cardinal | 16 32 64 | either word, longword or qword

Real     | 16/32   | (depends on the platform)
Single   | 32 bits | 1.5E-45 .. 3.4E38
Double   | 64 bits | 5.0E-324 .. 1.7E308
Extended | 80 bits | 1.9E-4951 .. 1.1E4932

Int64    | 64 bits | -9223372036854775808 .. 9223372036854775807
QWord    | 64 bits | 0 .. 18446744073709551615
Comp     | 64 bits | -2E64+1 .. 2E63-1
