C/C++头文件的编写

在C语言的学习过程中,我们一般把所有的代码写在一个文件中。随着自身水平的提高,我们发现代码越写越长,代码行数越来越多,把一个工程的所有代码写在一个文件中让人看起开非常吃力。于是我们开始想把代码中的函数归类,同一类放在同一个文件中当中,那么如何实现将一个工程中的代码放到不同文件中呢?这就需要写头文件了。下面的简单列子将让你学会如何写头文件。你也可以点击这里下载源代码自己研究。

假设我们需要定义一些与栈有关的函数,主程序需要调用这些函数。

首先,我们在同一文件夹中新建3个文件(要包含不同的自定义头文件需要加上路径,为了使用方便就在同一个文件夹下定义),名称分别为:

main.cpp包含主程序

stack.cpp定义与栈有关的函数

stack.h对stack.cpp里面的函数、结构体变量等进行声明

C/C++头文件的编写

然后在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;
}

输出:

C/C++头文件的编写

这样一个简单的多文件框架就实现了,点击这里下载源代码。
原文链接: https://www.cnblogs.com/robothy/p/4639304.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/219008

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午10:23
下一篇 2023年2月13日 上午10:23

相关推荐