{{fbdoc item="title" value="Comparison of integer data types: FreeBASIC vs. C/C++ (using GCC)"}}----

{{table columns="7" cellpadding="1" cells="; 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.  
{{table columns="4" cellpadding="1" cells="Target; fbc data type; c data type; bits; all; byte; signed char; 8; all; ubyte; unsigned char; 8; all; byte alias &quot;char&quot;; char; 8; all; ubyte alias &quot;char&quot;; 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 &quot;long&quot;; [signed] long [int]; 32; win64; ulong alias &quot;long&quot;; 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 "}}

{{fbdoc item="see"}}
	- [[DevBindingCreation|Creating FB bindings for C libraries]] - How to translate C data types to FB

{{fbdoc item="back" value="DocToc|Table of Contents"}}