68 lines
2.2 KiB
Plaintext
68 lines
2.2 KiB
Plaintext
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
|