问题描述
我对如何创建用户定义的头文件以及如何使用它感到困惑,所以我想问一下我是否正确。
如果我有两个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。