Skip to content

头文件(.bi)


为模块提供接口。

头文件是一种特殊类型的源文件,通常只包含预处理器语句、定义、声明、原型、常量、枚举或类似类型的语句,但如果目的合适,头文件可以包含任何有效的源代码。使它们与其他模块(.bas)源文件不同的是,它们不是直接编译,而是由另一个源文件(模块或头文件)使用 #include 预处理器指令包含。所有编译库通常有一个或多个头文件,可以包含在另一个源文件中,并向编译器介绍特定库中可用过程的所有名称。

FreeBASIC 头文件

本手册中记录的一些关键字、常量和过程在编译源代码时通常不可用,除非先在源代码中包含特定的头文件。

  • inc/fbc-int/array.bi
  • inc/datetime.bi
  • inc/dir.bi
  • inc/fbgfx.bi
  • inc/fbio.bi
  • inc/fblimits.bi
  • inc/fbprng.bi
  • inc/fbthread.bi
  • inc/file.bi
  • inc/fbc-int/symbol.bi
  • inc/crt/string.bi
  • inc/vbcompat.bi

大小写敏感性

尽管 FreeBASIC 语言本身不区分大小写,但运行它的文件系统可能区分大小写。如果找不到头文件,请检查 FreeBASIC 是否在正确位置搜索,并确保 #include 语句中指定的头文件的目录名称和文件名使用正确的大小写字母。

路径分隔符

FreeBASIC 会根据给定平台的需要自动切换反斜杠(\)和正斜杠(/)字符。这使得源代码易于跨平台兼容。

只包含一次头文件

头文件通常需要 #include 其他头文件才能正确编译。FreeBASIC 提供三种方法防止头文件被包含多次。

  • 头文件中的 #ifndef 保护
  • 在包含文件时使用 #include once
  • 在头文件本身中使用 #pragma once

头文件中的 #ifndef 保护

在几乎任何支持预处理的语言中,使用 #ifndef#define 是一种常见做法。第一次包含文件时,定义一个唯一符号。下次包含同一头文件时,检查该符号的定义,如果已定义,则跳过头文件的内容。

start GeSHi

vb
'' header.bi
#ifndef __HEADER_BI__
#define __HEADER_BI__

#print These statements will only be included once,
#print even though header.bi might be included more
#print than once in the same source file.

#endif

end GeSHi

#include once

在包含头文件的源代码位置,#include 指令的可选 "once" 限定符可以告诉编译器只包含该源文件一次。

start GeSHi

'' header.bi
#include once "fbgfx.bi"

end GeSHi

start GeSHi

'' module.bas
#include once "fbgfx.bi"
#include once "header.bi"

end GeSHi

#pragma once

#pragma once 可以在头文件中使用,以指示该头文件只应被包含一次。

start GeSHi

vb
'' header.bi
#pragma once
#print This header will only ever be included once per module

end GeSHi

版本

  • 从 fbc 1.10.0 起,添加了 symbol.bifblimits.bi
  • 在 fbc 1.10.0 之前(对于 fbc 1.08.0 和 fbc 1.09.0),fbprng.bi 被命名为 fbmath.bi
  • 从 fbc 1.08.0 起,添加了 array.bi
  • 在 fbc 1.08.0 之前,标准的 fbmath.bi 头文件不存在。

另请参阅

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系