BASIC兼容性
- FreeBASIC不是一种“新”BASIC语言。如果您熟悉任何Microsoft-BASIC变体,则无需学习新功能。您可以使用"-lang qb"兼容性,或(默认)"-lang fb"的一些新功能,但它也带来了一些限制和与“C”编程语言的一些相似之处。参见CompilerDialects。
- FreeBASIC是不区分大小写的;不需要明确的“主”程序; Microsoft QuickBASIC中发现的大多数图形和控制台语句和程序都已实现,等等。
- 只有"-lang qb":标量变量不需要进行尺寸标注,后缀可以使用;支持行号; GoSub支持。
清除语法
- 只添加少量关键字。所有的程序都是作为库实现的,所以在大多数情况下,没有新的内在例程,因此使用旧代码重命名的可能性很小。
对现有C库和API的简单绑定(头文件)
- 没有必要的包装或助手,只是一个移植的头文件,使外部C库的使用非常容易
- 官方的发行版已经有几个绑定到现有的C库,参见外部图书馆TOC一个完整的最新列表
{999796001}Multi-platform{999796002}
- FreeBASIC目前运行在32位Windows,Linux和DOS(16位DOS是足够好的,尽管FreeBASIC本身和编译器输出是32位),并且还为Xbox控制台创建应用程序。更多的平台来。
- 运行时库是考虑到可移植性的。大多数操作系统上使用的所有第三方工具都与GNU binutils一样存在。编译器是用100%的FreeBASIC代码(即FreeBASIC自己编译的)编写的,这使得它很容易被引导,因为它不依赖于非便携式工具。
Unicode支援
大量内置数据类型
用户自定义类型(UDT)
- 无限嵌套。
- 支持BASIC的Type语句,以及新的Union语句(包括匿名嵌套联合)。
- 可以使用最多八个维度的数组域。
- 过程指针字段。
- 位字段。
枚举(枚举)
阵列
- 支持固定和可变长度的阵列,大小可达2 GB。
- 最多八个维度,包括尺寸未知的数组。
- 任何下限和上限。
- 在使用新的Preserve说明符的ReDim的可变长度数组的重新大小期间,可以保留元素数据。
指针
- 指向上面列出的任何数据类型,包括字符串字符,数组元素和UDT。
- 使用与C.相同的语法。
- 无限制间接级别(例如,指向...指针的指针)。
- 程序指针。
- 索引[](包括字符串索引)。
- 类型铸造。
变量,对象和数组初始化
默认过程参数值
过程超载
联机装配
- 英特尔语法。
- 参考变量直接按名称;不需要“特技代码”。
传统的预处理器支持
输入别名
字符串文字的类似C的转义序列
调试支持
- 使用GDB (GNU调试器)或Insight (GDB GUI前端)进行全面调试支持。
- 数组边界检查(仅由-exx命令行选项启用)。
- 空指针检查(与上述相同)。
创建OBJ,LIB,DLL和控制台或GUI EXE的
- 您绝对没有锁定任何IDE或编辑器。
- 您可以创建静态和动态/共享库,只添加一个命令行选项(-lib或-dylib/-dll)。
作为32位应用程序
- FreeBASIC可以编译大小为2 GB的源代码文件。
- 符号数(变量,常数等)仅受编译时可用总内存的限制。(例如,您可以在源代码中同时包含OpenGL,GTK / SDL,BASS)。
优化代码生成
- 虽然FreeBASIC不是一个优化的编译器,它可以进行许多种一般的优化,以在x86 CPU上生成最快的代码,而不会丢失到其他BASIC替代方案,包括商业代码。
完全免费
- 所有第三方工具也是免费的。不使用任何放弃或受版权保护的软件(除Win32之外的GoRC)。汇编器,链接器,库管理器/归档器和其他命令行应用程序来自GNU binutils编程工具。