在C语言的学习过程中,我们一般把所有的代码写在一个文件中。随着自身水平的提高,我们发现代码越写越长,代码行数越来越多,把一个工程的所有代码写在一个文件中让人看起开非常吃力。于是我们开始想把代码中的函数归类,同一类放在同一个文件中当中,那么如何实现将一个工程中的代码放到不同文件中呢?这就需要写头文件了。下面的简单列子将让你学会如何写头文件。你也可以点击这里下载源代码自己研究。
假设我们需要定义一些与栈有关的函数,主程序需要调用这些函数。
首先,我们在同一文件夹中新建3个文件(要包含不同的自定义头文件需要加上路径,为了使用方便就在同一个文件夹下定义),名称分别为:
main.cpp包含主程序
stack.cpp定义与栈有关的函数
stack.h对stack.cpp里面的函数、结构体变量等进行声明
然后在stack.h中添加如下代码:
#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED
#include "stdio.h"
#include "stack.cpp" ///表名函数原型在,stack.cpp中,VC6.0好像不用加这句 #endif // HEADER_H_INCLUDED
在stack.cpp中包含stack.h:
#include "stack.h"
同样在main.cpp中也包含stack.h,并添加主函数:
#include "stack.h"
int main()
{
return 0;
}
这几步做完之后,基本框架也就完成了,下面我们开始写我们的库函数,例如我们要定义:
void stack_push(pSTACK &S);
pSTACK stack_pop(pSTACK &S);
bool stack_empty(pSTACK &S);
3个函数,以及一个结构体,那么这函数的原型和结构体应该写在stack.cpp中,函数声明和结构体声明写在stack.h中。
stack.cpp:
#include "stack.h"
typedef struct Stack
{
struct Stack *next;
unsigned int stack_size;
};
void stack_push(pSTACK &S)
{
/**此处省略若干代码**/
printf("这个函数来自stack.cpp\t");
printf("进栈\n");
}
pSTACK stack_pop(pSTACK &S)
{
pSTACK s=NULL;
/**此处省略若干代码**/
printf("这个函数来自stack.cpp\t");
printf("出栈\n");
return s;
}
bool stack_empty(pSTACK &S)
{
/**此处省略若干代码**/
return true;
}
stack.h:
#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED
#include "stdio.h"
/***结构体声明***/
typedef struct Stack STACK,*pSTACK;
/***函数声明***/
void stack_push(pSTACK &S);
pSTACK stack_pop(pSTACK &S);
bool stack_empty(pSTACK &S);
#include "stack.cpp" ///表名函数原型在,stack.cpp中,VC6.0好像不用加这句
#endif // HEADER_H_INCLUDED
在main函数中调用自定义函数。
main.cpp:
#include "stack.h"
int main()
{
pSTACK S=NULL;
stack_push(S);
stack_pop(S);
return 0;
}
输出:
这样一个简单的多文件框架就实现了,点击这里下载源代码。
原文链接: https://www.cnblogs.com/robothy/p/4639304.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/219008
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!