整数数据类型对比:FreeBASIC 与 C/C++(使用 GCC)
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=TblComparisonCTypes
- 最后更新: 2022-10-07
| 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 |
某些公共符号(如命名空间和用户定义类型的成员过程)会将数据类型信息编码到公共名称中(也称为名称修饰或名称装饰)。当将 fbc 编译的目标模块与 gcc 编译的目标模块链接时,需要 FreeBASIC 和 gcc 之间的数据类型具体映射关系。
| 目标平台 | fbc 数据类型 | c 数据类型 | 位数 |
|---|---|---|---|
| all | byte | signed char | 8 |
| all | ubyte | unsigned char | 8 |
| all | byte alias "char" | char | 8 |
| all | ubyte alias "char" | 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 |
参见
- 为 C 库创建 FB 绑定 - 如何将 C 数据类型转换为 FB
返回目录