| C int | C long long [int] | C long [int] | FB Long | FB LongInt | FB Integer |
32bit win32 | 32 | 64 | 32 (ILP32) | 32 | 64 | 32 |
32bit linux-x86 | 32 | 64 | 32 (ILP32) | 32 | 64 | 32 |
64bit win64 | 32 | 64 | 32 (LLP64) | 32 | 64 | 64 |
64bit linux-x86_64 | 32 | 64 | 64 (LP64) | 32 | 64 | 64 |
Some public symbols (like namespaces, and user defined type member procedures) will have data type information encoded in to the public name (also known as name mangling or name decoration). Specific mapping of data types between FreeBASIC and gcc is required when linking
fbc compiled object modules with
gcc compiled object modules.
Target | fbc data type | c data type | bits |
all | byte | signed char | 8 |
all | ubyte | unsigned char | 8 |
all | short | [signed] short [int] | 16 |
all | ushort | unsigned short [int] | 16 |
all | long | [signed] int | 32 |
all | ulong | unsigned int | 32 |
x86 | integer | [signed] long [int] | 32 |
x86 | uinteger | unsigned long [int] | 32 |
win64 | long alias "long" | [signed] long [int] | 32 |
win64 | ulong alias "long" | unsigned long [int] | 32 |
win64 | integer | INTEGER | 64 |
win64 | uinteger | UINTEGER | 64 |
linux-x86_64 | integer | [signed] long [int] | 64 |
linux-x86_64 | uinteger | unsigned long [int] | 64 |
all | longint | [signed] long long [int] | 64 |
all | ulongint | unsigned long long [int] | 64 |
See also