English 中文(简体)
C - 标题档案
  • 时间:2024-11-03

C - Header Files


Previous Page Next Page  

标题档案是一份延期文件h。 C 功能声明和宏观定义将在多个来源档案之间共享。 档案有两类主人档案:编审员撰写的档案和与编辑的档案。

您请求在您的方案中使用一个标题文件,将文件列入“C” 预处理指令#include,如您所看到的“stdio.h的头号档案”与你的汇编者一起。

包括头号档案等于复制头号档案的内容,但我们没有这样做,因为它容易发生错误,在来文方档案中复制头号档案的内容并不是一个好的想法,特别是如果我们在一项方案中有多个来源档案。

C或C++方案的一个简单做法是,我们保持所有不变、宏观、系统广泛的全球变量,并在主人档案中运行原型,并在需要时列入该标题档案。

Include Syntax

用户和系统负责人的档案都使用预处理指令#include。 它有以下两种形式:

#include <file>

这一表格用于系统负责人档案。 它搜查了系统名录标准清单中的名称档案。 在汇编你的源代码时,你可以选择“我”办法预先为这份清单提供目录。

#include "file"

这一表格用于主人自己的节目档案。 它搜查了载有现有档案的目录中的名称档案。 在汇编你的源代码时,你可以选择“我”办法预先为这份清单提供目录。

Include Operation

#include 指令通过指示C前处理器在继续使用目前来源档案的其余部分之前将具体档案作为投入加以扫描。 加工商的产出包含已经产生的产出,随后是列入文件的产出,随后是载于#include指令之后的案文所产生的产出。 举例来说,如果你拥有一个头盔,h 如下:

char *test (void);

以及一个名为program.c的主要节目,如使用头盔文件,

int x;
#include "header.h"

int main (void) {
   puts (test ());
}

汇编者将看到与方案(c)的读物相同。

int x;
char *test (void);

int main (void) {
   puts (test ());
}

Once-Only Headers

如果头号档案被两次列入,编辑将两次处理其内容,并造成错误。 防止这种情况的标准办法是将档案的全部真实内容附在条件之下,如上。

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

这一建筑通常称为一个包裹#ifndef>。 当头盔再次被包括在内时,这一条件将是假的,因为欧洲复兴开发银行 定义了家庭生活技能。 预审员将绕过档案的全部内容,汇编者不会看到档案的两倍。

Computed Includes

有时,必须选定几个不同的主人档案之一,以列入你的方案。 例如,它们可能具体规定不同类型的操作系统所使用的配置参数。 您可以按以下一系列条件这样做:

#if SYSTEM_1
   # include "system_1.h"
#epf SYSTEM_2
   # include "system_2.h"
#epf SYSTEM_3
   ...
#endif

但是,随着其增长,它变得虚幻,而先处理者则能够使用宏观代号。 页: 1 你没有写上标题作为#include的直接论点,而是在那里用宏观名称——

#define SYSTEM_H "system_1.h"
...
#include SYSTEM_H

海关数据表_H将予扩大,处理前人员将视系统为1.h,如#include。 最初是这样写的。 SYSTEM_H可以由您的Makfile来界定,选择――D。

Advertisements