使用用户定义的头文件C

问题描述

我对如何创建用户定义的头文件以及如何使用它感到困惑,所以我想问一下我是否正确。

如果我有两个C程序,一个是demo.c,一个叫做tree.c,则可以创建头文件tree.h:

#ifndef TREE_H
#define TREE_H

//some prototypes here
int size();
int isFull();

#endif

在实际的tree.c程序中,我放置了所有实际的功能

#include "tree.h"

int size()
{
//some implementation
}

int isFull()
{
//some implementation
}

我想知道是否还有另一个名为demo.c的程序,是否可以仅包含tree.h标头并在tree.c中使用该功能?就像我们使用另一个类在Java中所做的一样? 我需要将它们放在同一目录中吗?

解决方法

简而言之,是的,您只需在demo.c中执行#include "tree.h"

如果tree.h与demo.c不在同一目录中,则可以通过#include "some/other/dir/tree.h"包含其路径,也可以在编译器调用中传递一个include标志。例如,如果您使用的是gcc,则可以执行-Isome/other/dir

demo.c只需要查看tree.h包含的函数原型,就可以知道它正在调用哪种类型的函数。除非要将它编译成可执行文件,否则不需要tree.c。