头文件(.bi)
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=ProPgHeaderFiles
- 最后更新: 2023-01-01
为模块提供接口。
头文件是一种特殊类型的源文件,通常只包含预处理器语句、定义、声明、原型、常量、枚举或类似类型的语句,但如果目的合适,头文件可以包含任何有效的源代码。使它们与其他模块(.bas)源文件不同的是,它们不是直接编译,而是由另一个源文件(模块或头文件)使用 #include 预处理器指令包含。所有编译库通常有一个或多个头文件,可以包含在另一个源文件中,并向编译器介绍特定库中可用过程的所有名称。
FreeBASIC 头文件
本手册中记录的一些关键字、常量和过程在编译源代码时通常不可用,除非先在源代码中包含特定的头文件。
inc/fbc-int/array.biinc/datetime.biinc/dir.biinc/fbgfx.biinc/fbio.biinc/fblimits.biinc/fbprng.biinc/fbthread.biinc/file.biinc/fbc-int/symbol.biinc/crt/string.biinc/vbcompat.bi
大小写敏感性
尽管 FreeBASIC 语言本身不区分大小写,但运行它的文件系统可能区分大小写。如果找不到头文件,请检查 FreeBASIC 是否在正确位置搜索,并确保 #include 语句中指定的头文件的目录名称和文件名使用正确的大小写字母。
路径分隔符
FreeBASIC 会根据给定平台的需要自动切换反斜杠(\)和正斜杠(/)字符。这使得源代码易于跨平台兼容。
只包含一次头文件
头文件通常需要 #include 其他头文件才能正确编译。FreeBASIC 提供三种方法防止头文件被包含多次。
- 头文件中的
#ifndef保护 - 在包含文件时使用
#include once - 在头文件本身中使用
#pragma once
头文件中的 #ifndef 保护
在几乎任何支持预处理的语言中,使用 #ifndef 和 #define 是一种常见做法。第一次包含文件时,定义一个唯一符号。下次包含同一头文件时,检查该符号的定义,如果已定义,则跳过头文件的内容。
start GeSHi
'' 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.
#endifend 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
'' header.bi
#pragma once
#print This header will only ever be included once per moduleend GeSHi
版本
- 从 fbc 1.10.0 起,添加了
symbol.bi和fblimits.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头文件不存在。
另请参阅
返回 目录