如何制作C语言头文件
但我完全不知道在头文件中如何写。才能让我调用。
求大神写个加法头文件的示例代码 展开
方法和详细的操作步骤如下:
1、第一步,头文件被构建为在c文件中声明函数,并包括宏定义, 必须有相应的c文件才能创建头文件,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,要编写头文件,创建一个.h文件,见下图,转到下面的步骤。
3、第三步,完成上述步骤后,打开h文件进行编辑,按照步骤可以创建头文件,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,头文件名的大写字母写在#ifndef之后,例如:test.h应该写为__TEST_H__,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,在define和endif之间声明函数名称,见下图,转到下面的步骤。
6、第六步,完成上述步骤后,将include头文件写入主文件中并可以调用,见下图,转到下面的步骤。
7、第七步,完成上述步骤后,进行编译,运行,然后完成,见下图。这样,就解决了这个问题了。
#include<stdio.h>这种带了引号的通常是编译系统自带的头文件,而用户也可以自己定义头文件
#include "abc.h"这种带了引号的就是你自己定义的头文件
如何建立头文件:
以microsoft visual c++ 6.0为例,打开工作间后依次选择“文件”、“新建”在弹出的窗口选择“文件”选项卡之下的“C/C++ Header File“(平常我们写一般的C程序是点它下面的C++ Source File),
之后再编辑文件,最后保存文件(此时可以发现文件格式是.H格式的头文件了),注意文件的位置要与你下面的主代码在同一个文件夹里。
如何在主代码中使用头文件:
在工作间中依次选择“文件”、“新建”在弹出的窗口选择“文件”选项卡之下的C++ Source File,
如果你之前建的头文件名是abc.H,代码的第一行写“#include "abc.H",
之后的就不用我说了吧。
conio是console
input/output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
包含的函数
cgets(char
*);
cprintf(const
char
*,
...);
cputs(const
char
*);
cscanf(const
char
*,
...);
inp(unsigned
short);
inpw(unsigned
short);
getch(void);
getche(void);
kbhit(void);
outp(unsigned
short,
int);
outpw(unsigned
short,
unsigned
short);
putch(int);
ungetch(int);
头文件
在c语言家族程序中,头文件被大量使用。一般而言,每个c++/c程序通常由头文件(header
files)和定义文件(definition
files)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现
(implementation)。
c++/c程序的头文件以“.h”为后缀。以下是假设名称为
graphics.h的
头文件:
比如常用的还有,字符串操作的:string.h等。
参照别人的,说的挺好,看看或许对你有用。
传统
c++
#include
//设定插入点
#include
//字符处理
#include
//定义错误码
#include
//浮点数处理
#include
//文件输入/输出
#include
//参数化输入/输出
#include
//数据流输入/输出
#include
//定义各种数据类型最值常量
#include
//定义本地化函数
#include
//定义数学函数
#include
//定义输入/输出函数
#include
//定义杂项函数及内存分配函数
#include
//字符串处理
#include
//基于数组的输入/输出
#include
//定义关于时间的函数
#include
//宽字符处理及输入/输出
#include
//宽字符分类
//////////////////////////////////////////////////////////////////////////
标准
c++
(同上的不再注释)
#include
//stl
通用算法
#include
//stl
位集容器
#include
#include
#include
#include
#include
//复数类
#include
#include
#include
#include
#include
//stl
双端队列容器
#include
//异常处理类
#include
#include
//stl
定义运算函数(代替运算符)
#include
#include
//stl
线性列表容器
#include
//stl
映射容器
#include
#include
//基本输入/输出支持
#include
//输入/输出系统使用的前置声明
#include
#include
//基本输入流
#include
//基本输出流
#include
//stl
队列容器
#include
//stl
集合容器
#include
//基于字符串的流
#include
//stl
堆栈容器
#include
//标准异常类
#include
//底层输入/输出支持
#include
//字符串类
#include
//stl
通用模板类
#include
//stl
动态数组容器
#include
#include
using
namespace
std;
//////////////////////////////////////////////////////////////////////////
c99
增加
#include
//复数处理
#include
//浮点环境
#include
//整数格式转换
#include
//布尔环境
#include
//整型环境
#include
//通用类型数学宏
by.c
#include "stdio.h"
int a00(){}
int a01(){}
int a02(){}
int a03(){}
...
int a99(){}
int main()
{
//...
}
这样下来代码的看起来太长了,而有些是我们只要使用而一般不用检查代码(如那些功能函数)
于是我们这样写
a.c
int a00(){}
int a01(){}
int a02(){}
int a03(){}
...
int a99(){}
by.c
#include "stdio.h"
#include "a.c"
int main()
{
//...
}
~,这下看起来好多了
可是当我们有许多这样的文件时
by.c
#include "stdio.h"
#include "a.c"
#include "b.c"
...
#include "z.c"
int main()
{
//...
}
这样看起来是不是还是有点。。。
cy.c
#include "a.c"
#include "b.c"
...
#include"z.c"
by.c
#include "stdio.h"
#include "cy.c"
int main()
{
//...
}
调试。。。
什么,函数重名了(- -什么时候写的)
什么,函数未定义(- -记得写过的)
到一堆文件中去找,受不了,太多了
好吧,列个目录出来
ah.h
#include "cy.c"//库函数的头文件,由于已经生成可执行的指令文件。所以一般不包含实现代码,而那时头文件也是作为一种纯粹的索引。
int a00();
...
int b00();
...
int c00();
by.c
#include "stdio.h"
#include "ah.h"
int main()
{
//...
}
在我们编程的过程中,代码复用是很重要的,这其实说的就是代码复用过程中的分类管理。
如何使用呢
代码最终都要编译到一个文件中,所以不管如何折腾,最终都是合在一起的。
by.c
#include "stdio.h"
#include "ah.h"//我们把所要用的函数包含进我们的代码文件
int main()
{
//...
}
比如你原来的代码中除了MAIN函数,还有多个函数。
你把MAIN函数以外的全放到另一个文件中,保存成头文件,再在主函数所在的文件中#include "XXX.h",就可以直接使用了。
和#include <stdio.h>后,就可以用scanf什么的一样。
"XXX.h"表示的是在当前目录下的XXX.h文件,所以文件要放对位置哦!