Header Files (.bi)
 
为模块提供接口。

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

FreeBASIC头文件

本手册中记载的一些关键字,常量和过程在编译源代码时通常不可用,除非源头中包含特定的头文件。
  • datetime.bi
  • dir.bi
  • fbgfx.bi
  • file.bi
  • string.bi
  • vbcompat.bi

案例灵敏度

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

路径分隔符

FreeBASIC将根据特定平台的需要自动切换反斜杠(\\)和正斜杠(/)字符。这允许源代码容易地交叉兼容。

只包含一个标题一次

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

几乎所有支持预处理的语言都使用#ifndef#define.首次包含文件时,将定义一个唯一的符号。下一次包含相同的头文件时,会检查符号的定义,如果已经定义了该文件,则会跳过头文件的内容。
'' 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


#include一次

在包含头文件的源代码中,#include指令的可选"once"说明符可以让编译器只包含源文件一次。
'' header.bi
#include once "fbgfx.bi"

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


曾经的#pragma

可以在头文件中使用#pragma once来指示头文件应仅包含一次。
'' header.bi
#pragma once
#print This header will only ever be included once per module


参考