FreeBasic Basic是一款开源、免费的BASIC编译器,语法与MS-QuickBASIC相似,兼容GFX语句,同时拓展指针、无符号数据类型、内联汇编、预处理器等实用特性。完整支持 C 库调用,也可部分使用C++库,方便开发者调用或构建其他语言的程序库
FreeBasic Basic官方版支持多行宏、条件编译与文件包含,兼顾过程式、面向对象、元编程多种编程范式,依托丰富的数据类型与语言结构,适配多样编程风格。
1、干净的语法
仅添加少量关键词。所有过程都以库的形式实现, 所以大多数情况下,没有新的内在例程,因此成功的概率很低 名称与旧代码重复。
2、与现有 C 库和 API 的薄绑定(头文件)
不需要封装或辅助工具,只需一个移植的头文件,利用外部 C 语言 图书馆非常简单。官方发行版附带多个已存在的 C 库绑定 完整的最新列表请参见外部库。
3、多平台
FreeBASIC 目前运行在 64/32 位 Windows、Linux 和 DOS 上(16 位 DOS 已经足够了,不过 FreeBASIC 本身和编译器的输出都是 32 位),并且还为 Xbox 创建应用程序 控制台。更多平台即将到来。运行时库的编写考虑了可移植性。 所有第三方工具都已存在于大多数操作系统中,因为它们来自 GNU 双人螺。编译器采用100%FreeBASIC代码编写(即FreeBASIC自行编译)。 这使得引导过程变得简单,因为它不依赖于非可移植的工具。
4、Unicode 支持
除了带有Unicode转义序列(\u)的ASCII文件外,FreeBASIC还能解析UTF-8、UTF-16LE, UTF-16BE、UTF-32LE 和 UTF-32BE 源码(.bas)或头部文件(.bi),它们可以自由混合 同一项目中的其他源/头部(也包括其他ASCII文件)。
字面字符串 可以用原始非拉丁字母表输入,只需使用支持以下部分的文本编辑器 上述列出的Unicode格式。
Wstring类型包含宽字符,所有字符串过程 (比如Left、Trim等)也能用宽弦。
Open扩展以支持UTF-8, 带有编码规范的 UTF-16LE 和 UTF-32LE 文件。输入#和线输入#,以及 打印 # 和写入 # 可以正常使用,任何从 Unicode 到 ASCII 的转换都已完成 必要时自动。
印刷还支持Unicode输出。
5、大量内置数据类型
整数:字节、Ubyte、Short、Ushort、整数、UInteger、Long、ULong、Longint、Ulongint
浮点:单点(32位)、双浮点(64位)
字符串:固定、可变长度或空终止(Zstring),最多2GB长的Unicode字符串 (Wstring),类似于Zstring,但支持宽字符。使用 Windows Unicode API 直接操作等。
6、用户自定义类型(UDT)
无限筑巢。BASIC 的 Type 语句得到了支持 (包括匿名嵌套的联集)。可以使用多达八维的阵列场。 程序指针字段。位字段。枚举(枚举)可以轻松声明常量列表 其顺序值为 Enum。
数组支持固定长度和可变长度的数组, 最大可达2 GB。最多八维,包括未知维度的阵列。再低一点 以及上界。
在可变长度数组重新调整大小时,元素数据可以被保留 Redim 则使用新的 Preserve 指定符。指向上述任意数据类型的指针, 包括字符串字符、数组元素和UDT代码。使用与C语言相同的语法。
无限 间接级(例如,指针到指针......)。操作提示。索引 [] (包括字符串索引)。类型选角。变量、对象和数组初始化对于静态, 模块级或局部变量、数组和UDT。
7、默认过程参数值
对于数值、字符串和UDT参数类型。程序过载包括 默认参数值。
Q1、FreeBASIC 支持面向对象编程吗?
FreeBASIC 支持类(用户自定义类型),包括成员函数(方法)、静态方法、静态成员变量、构造子、结构化、属性、运算符重载、单继承、虚拟和抽象方法(多态性)以及运行时类型信息(RTTI)。未来关于面向对象编程功能的计划包括增加多重继承和/或接口支持。
Q2、我可以在Facebook上编程GUI应用吗?
可以的。分别版本附带了允许调用Windows和Linux图形界面API的头部,但通过这种方式制作的程序不具备移植性。
有一些API包装器和实验性的RAD应用程序可以为Windows创建非可移植的图形界面代码。
对于可移植编程,可以使用多平台的图形界面包装库,如GTK或wx-Widgets。FB 提供了 GTK 头部,但目前 FB 提供的面向对象功能阻止了 wx-Widget 的使用使用这些库创建的程序可能需要用户在其系统中安装包装库。
对于游戏和小型图形应用,有一些面向 Facebook 的库,可以在图形界面内绘制和管理简单的按钮和编辑框,用这些库制作的程序完全可移植。
Q3、Facebook 适合复杂/大型应用吗?
FB编译器是自主机的,它是在FB中编程的。这意味着目前需要超过12万行代码,这是一个相当复杂的应用。
Q4、我可以在Facebook中使用串口/COM和硬件/CPU端口吗?
是的,FB内置功能可以访问串口/COM口和硬件/CPU端口,无需外部库。关于你操作系统的详细信息,请参见操作系统相关的常见问题解答,以及Open Com、INP和OUT。
Q5、为什么我启动FreeBASIC时,QB的图形界面不会打开?
QB拥有集成开发环境(IDE)。FreeBASIC 没有。
FreeBASIC 只是编译器,不是完整的 QuickBASIC 克隆。它是一个控制台模式的应用程序。它会在命令行接受BAS文件,输出一个EXE文件。
你可以用操作系统里最简单的纯文本编辑器(Notepad、EDIT、nano,...)创建BAS文件,然后运行编译器。
如果你离不开语法着色、错误高亮、多文件管理、集成调试器、上下文帮助或其他功能,你需要一个集成开发环境(IDE)。
Q6、为什么我的程序编译失败,提示“找不到 -llibname”?
这是链接器提出的一个错误。程序应当链接到外部库,该库在程序代码中用 #Inclib 标记,或在编译器命令行中用 -l 标记。然而,链接器在任何库路径中都找不到匹配的文件。请查看你想编译的库主页,了解如何下载,或者查看 ExtLibTOC 是否能找到该库的信息。
展开内容
查看
8.0/2.15G
ABB Robot Studio中文版是一款非常强大的机器人仿真软件,使用非常的简单,可以使用虚拟的机器人进行离线的编程,可以帮助用户快速的实现智能化、编程自动化的操作,可以快速的提高生产的效率,不管是用在教育、企业生产、培训等。
查看
7.7/3.13G
IAR for ARM全称IAR Embedded Workbench for ARM,它是一款由瑞典的IAR Systems公司推出的专为微处理器开发的集成开发环境,这个开发环境支持ARM,AVR,MSP430等多种芯片内核平台,是微处理器开发领域非常著名的产品。
8.3/3.05G
Mixly3.0编程软件是由北京师范大学米思齐团队开发的一款免费开源的图形化Arduino编程工具,基于Google的Blockly框架设计。它允许用户无需编写代码,直接通过拖拽模块的方式完成Arduino程序开发,极大降低了学习门槛,非常适合青少年和编程初学者使用。
8.5/842M
Keil uVision5是ARM公司面向基于ARM Cortex-M、Cortex-R等微控制器推出的集成开发环境(IDE),提供完整的C/C++编译、调试、仿真及RTOS支持。
查看
查看
查看
查看