我写了一个头文件a.h,实现在a.c中,主文件中#include "a.h",报错。。。我想知道头文件的声明和定义的规范使用方法。。谢谢。。
首先搞清楚,include和头文件的关系。
include的作用是将这个文件的内容插入到include所在的位置,从而构成一个完整的源代码文件被编译。
那么头文件是什么,实际上头文件里可以放任何东西,源代码文件也可以放任何东西,include也可以随意包含。
只是看这三者放在一起,经过替换,得到的源代码最终是否成立。
C要求函数先声明,再使用,所以如果函数被很多源代码同时使用,那么为了减少麻烦(每个文件都必须把函数原型写一遍),就把它们集中起来写在头文件中,每个源代码去include
这是头文件的作用。
回到你的问题,实现放在哪里,按理说放在哪里都可以,但是从最能体现头文件的意义和使用价值的角度来说,应该放在一个单独的源代码文件中。
你将鼠标的光标放在你需要知道的头文件上,然后按【ctrl+鼠标左键】就能跳到那个头文件里定义的界面了;
其它的都是一样的,将鼠标光标移到你要查看的方法或类上,按【ctrl+鼠标左键】;
这个快捷键你最好记住,能省不少麻烦
如果回答对您有帮助,请采纳
a.c中有没有包含那个头文件
好多的大神给出了精彩的回复:对于你的问题,给出两个答复:一个是本身自带库文件,一个是你自己创建的.h文件。
include(studio.h);
a.h文件里给出声明,在a,c里实现函数,然后在其他.c文件里加上#include后就可以直接调用了
a.h放声明,a.c放实现,a.c和main.c都要#include"a.h"
不知道你是什么错误,放出来看看把。
#include”a.h"就相当于在这个位置插入a.h这个文件的内容。
与头文件同名的源文件内进行实现
a.c有没有编译,是不是Makefile没写好,链接有问题?将编译方法发一下
举个例子吧:
a.h
#include
int aPlusB(int a, int b);
上面这个就是头文件咯
a.c
#include "a.h"
int aPlusB(int a, int b)
{
return a+b;
}
就在 a.c 中将 aPlusB 给实现了,
C程序采用模块化的编程思想,需合理地将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求,在模块的划分上主要依据功能。模块由头文件和实现文件组成,对头文件和实现文件的正确使用方法是:
规则1 头文件(.h)中是对于该模块接口的声明,接口包括该模块提供给其它模块调用的外部函数及外部全局变量,对这些变量和函数都需在.h中文件中冠以extern关键字声明;
规则2 模块内的函数和全局变量需在.c文件开头冠以static关键字声明;
规则3 永远不要在.h文件中定义变量;
定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量