<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=FreeBASIC</id>
	<title>FreeBASIC - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=FreeBASIC"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=FreeBASIC&amp;action=history"/>
	<updated>2026-04-05T04:30:34Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=FreeBASIC&amp;diff=1176&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“FreeBASIC是现代BASIC语言变体的名称，以及相应的编译器名称。 传统Basic无法进行本机操作系统开发，而Freebasic具有许多对操作系统开发有用的功能。   ==概述== 除了与QuickBasic基本兼容外，它还提供了以下有用的功能： * 无符号数据类型 * 内联汇编 * 指针 * 回调 * 一个可移植的运行时。  最大的缺点是，大多数特定于Basic的指令需要运行时，而在独立的环…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=FreeBASIC&amp;diff=1176&amp;oldid=prev"/>
		<updated>2022-04-23T00:46:36Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“FreeBASIC是现代BASIC语言变体的名称，以及相应的编译器名称。 传统Basic无法进行本机操作系统开发，而Freebasic具有许多对操作系统开发有用的功能。   ==概述== 除了与QuickBasic基本兼容外，它还提供了以下有用的功能： * 无符号数据类型 * 内联汇编 * 指针 * 回调 * 一个可移植的运行时。  最大的缺点是，大多数特定于Basic的指令需要运行时，而在独立的环…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;FreeBASIC是现代BASIC语言变体的名称，以及相应的编译器名称。 传统Basic无法进行本机操作系统开发，而Freebasic具有许多对操作系统开发有用的功能。 &lt;br /&gt;
&lt;br /&gt;
==概述==&lt;br /&gt;
除了与QuickBasic基本兼容外，它还提供了以下有用的功能：&lt;br /&gt;
* 无符号数据类型&lt;br /&gt;
* 内联汇编&lt;br /&gt;
* 指针&lt;br /&gt;
* 回调&lt;br /&gt;
* 一个可移植的运行时。&lt;br /&gt;
&lt;br /&gt;
最大的缺点是，大多数特定于Basic的指令需要运行时，而在独立的环境中不能轻松使用。 结果是，在包含运行时支持之前，无法使用几个典型的基本构造，这使得开发非常棘手。&lt;br /&gt;
&lt;br /&gt;
==用法==&lt;br /&gt;
FreeBASIC的命令行语法类似于[[GCC]]：&lt;br /&gt;
 fbc -c -o kernel.o kernel.bas&lt;br /&gt;
要链接输出可以用：&lt;br /&gt;
 ld -T script.ld -o kernel.bin kernel.o&lt;br /&gt;
&lt;br /&gt;
为了开始运行，有一个[[FreeBasic Bare Bones]]教程，该教程以一个工作正常的“Hello world”内核结束。&lt;br /&gt;
&lt;br /&gt;
== 运行时库 ==&lt;br /&gt;
在独立环境中，运行时不可用。程序员应注意不要使用以下任何一项：&lt;br /&gt;
* 字符串&lt;br /&gt;
* 动态数组 (仅允许本地固定大小的数组)&lt;br /&gt;
* 任何形式的全局值。所有信息都必须在参数中传递。&lt;br /&gt;
* 所有非原语内置函数，即任何比+-*/和逻辑运算符更复杂的函数。&lt;br /&gt;
* IO功能，包括端口输出和输入，peek和poke。&lt;br /&gt;
&lt;br /&gt;
你需要提供一个运行时init来允许使用全局变量，还需要一个malloc（）来让字符串和数组工作 (其余依赖项是跨平台的ctype+stdlib函数，这不会造成太大问题)。&lt;br /&gt;
&lt;br /&gt;
如果你已经到了坐下来考虑一下，用C写一个内核的程度，用FreeBASIC写同样的东西就差不多了。 当然，这里有巨大的语言差异，FreeBASIC的语法比C更像英语...但要做任何有用的事情，这两种策略都需要一个C运行时和库。 对于FB内核，在成功移植C库之后，可以考虑在上面移植FB运行时。 更重要的是，FB（Free Basic）可以链接到现有的C库，因此移植C库并不痛苦。&lt;br /&gt;
&lt;br /&gt;
==另见==&lt;br /&gt;
=== 文章 ===&lt;br /&gt;
* [[FreeBasic Bare Bones]] 教程&lt;br /&gt;
*  一般可用替代[[Languages|语言]]。&lt;br /&gt;
&lt;br /&gt;
===外部链接===&lt;br /&gt;
* FreeBasic [http://www.freebasic.net/ homepage]&lt;br /&gt;
* The [http://www.freebasic.net/wiki/wikka.php?wakka=DocToc FreeBasic Manual]&lt;br /&gt;
* FreeBASIC tutorial: [http://www.ascii-world.com/fb-to-gedit-howto syntax highlighting in gedit]&lt;br /&gt;
&lt;br /&gt;
[[de:FreeBASIC]]&lt;br /&gt;
[[Category:Compilers]] [[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>