Most Important Features
 

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支援
  • 除了具有统一转义序列(\\ u)的ASCII文件,FreeBASIC可以解析UTF-8,UTF-16LE,UTF-16BE,UTF-32LE和UTF-32BE源(.bas)或头(.bi)文件,可以与同一项目中的其他源/标题(也可与其他ASCII文件)自由混合。
  • 文字字符串可以在原始的非拉丁字母中键入,只需使用支持上述统一一些格式的文本编辑器。
  • WString类型包含宽字符,所有字符串过程(如LeftTrim等))也可以使用宽字符串。
  • Open被扩展为支持具有Encoding说明符的UTF-8,UTF-16LE和UTF-32LE文件。Input #Line Input #以及Print #Write #可以正常使用,如果需要,统一到ASCII之间的任何转换都会自动完成。
  • Print还支持统一输出(见要求)。

大量内置数据类型
用户自定义类型(UDT)
  • 无限嵌套。
  • 支持BASIC的Type语句,以及新的Union语句(包括匿名嵌套联合)。
  • 可以使用最多八个维度的数组域。
  • 过程指针字段。
  • 位字段。

枚举(枚举)
  • 轻松地使用Enum声明具有顺序值的常量列表。

阵列
  • 支持固定和可变长度的阵列,大小可达2 GB。
  • 最多八个维度,包括尺寸未知的数组。
  • 任何下限和上限。
  • 在使用新的Preserve说明符的ReDim的可变长度数组的重新大小期间,可以保留元素数据。

指针
  • 指向上面列出的任何数据类型,包括字符串字符,数组元素和UDT。
  • 使用与C.相同的语法。
  • 无限制间接级别(例如,指向...指针的指针)。
  • 程序指针。
  • 索引[](包括字符串索引)。
  • 类型铸造。

变量,对象和数组初始化
  • 对于静态,模块级或局部变量,数组和UDT。

默认过程参数值
  • 对于数字,字符串和UDT参数类型。

过程超载
  • 包括具有默认参数值的过程。

联机装配
  • 英特尔语法。
  • 参考变量直接按名称;不需要“特技代码”。

传统的预处理器支持
  • 与C语法相同
  • #define命令支持的单行宏,包括参数。
  • #macro命令支持的多行宏。

输入别名
  • 支持C中的前向引用,包括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编程工具。