c头文件和源文件怎么写

1.C语言中头文件和源文件写法有什么区别

相同点:头文件与源代码都是源文件,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都可以使用类型定义和常、变量定义,都可以包含函数的声明和实现,都能包含宏定义,都使用相同的调用规范。

不同点:C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而头文件不得包含函数入口,也就是说,头文件不可以单独编译成一个程序,仅仅包含程序片断或者仅仅定义常、变量。

关联:头文件是专为源代码调用而写的静态包含文件,可被源代码文件中的#include编译预处理指令解释,而将头文件完整拷贝到源代码的指令处,从而在编译时相当于在源代码中插入了函数声明或者实现。某些头文件包含了静态库中的函数调用声明,包含了LIB文件的调用信息,编译时静态链接进程序;而某些头文件是专为方便API调用而写的,里面包含了动态链接库的调用信息和规范,只有在运行时将DLL载入内存提取函数执行。

也就是说,其实你将头文件里的信息完全写到源代码里,是可以实现完全相同的功能的。如果你想要学写头文件,可以参照标准C/C++库的h文件。

2.C语言中头文件和源文件写法有什么区别

相同点:

头文件与源代码都是源文件,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都可以使用类型定义和常、变量定义,都可以包含函数的声明和实现,都能包含宏定义,都使用相同的调用规范。

不同点:

C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而头文件不得包含函数入口,也就是说,头文件不可以单独编译成一个程序,仅仅包含程序片断或者仅仅定义常、变量。

关联:

头文件是专为源代码调用而写的静态包含文件,可被源代码文件中的#include编译预处理指令解释,而将头文件完整拷贝到源代码的指令处,从而在编译时相当于在源代码中插入了函数声明或者实现。

某些头文件包含了静态库中的函数调用声明,包含了LIB文件的调用信息,编译时静态链接进程序;而某些头文件是专为方便API调用而写的,里面包含了动态链接库的调用信息和规范,只有在运行时将DLL载入内存提取函数执行。

也就是说,其实你将头文件里的信息完全写到源代码里,是可以实现完全相同的功能的。如果你想要学写头文件,可以参照标准C/C++库的h文件。

3.C语言代码的头文件与源文件有什么区别

大家对头文件都有一定的误解 C,C++程序,本质上只需要 .C,.CPP文件就可以.这两个文件会被编译器编译生成模块. 头文件其实就是一个额外的文本文件, #include这个预编译命令会把这个文本文件中的内容插入到这个指令的位置. 在CPP文件中使用#include命令来包含一个头文件,相当于把头文件中的代码拷贝到CPP文件中调用该预编译指令的位置. 之所以要用到头文件,那是因为在编译过程中,一个CPP中如果要调用或使用另外一个模块中的函数或其它符号,就必须先写这个函数或符号的声明. 比如 void funB(); void funA() { funB(); } void funB() { } funA要调用funB,你们在funA之前就必须先有funB的声明,有了这个funB的声明,无论funB的定义在哪,funA都能被编译通过了.只要链接时能在所有模块中找到这个funB,你们程序就能链接成功,执行了. 正因为这个关系,所以我们一般为一个CPP中的所有函数都写一个声明在对应的H文件中,这样,其他CPP只要包含了这个H文件,就有了这个CPP中所有函数或符号的声明,就可以使用这个CPP中实现的函数或定义的符号了.没有头文件,程序也是完全可以的,只是你每次调用其他CPP中的函数时,都得自己在CPP中再写一遍你要调用的函数的声明. 说的不够详细,不知道大家能否理解. 头文件就是一个代码文本,放一些声明,让其他源代码文件来包含的.因为会被多个CPP包含,所以当你把定义放到头文件中时,如果有两个或以上地方包含了这个头文件,那么这个定义就也会有多份(因为预处理指令#include 做的是完全的代码拷贝),就会出现重复定义的错误。

4.C语言中的头文件,源文件到底是什么东西

通俗的讲, 大概是这么回事:

头文件和源代码文件是要配合着使用的, 一个头文件会被其他的源文件或者头文件所包含, 也就是#include这个预处理命令. 比如一个源文件中#include了某个头文件, 那么编译器就会把这个头文件里面的内容替换到写了#include的位置上了.

这样做的好处啊, 首先是同样的代码可以方便的重用了, 比如你在一个头文件里面写了一个结构体, 那么哪个源文件里需要用到这个结构体, 就#include这个头文件就行了, 不必再写一遍.

!谢谢……

5.C++中头文件(.h)和源文件(.cpp)都应该写些什么

在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下): #ifndef CIRCLE_H

#define CIRCLE_H//你的代码写在这里#endif 这样做是为了防止重复编译,不这样做就有可能出错。 至于CIRCLE_H这个名字实际上是无所谓的,你叫什么都行,只要符合规范都行。原则上来说,非常建议把它写成这种形式,因为比较容易和头文件的名字对应。 源文件(.cpp): 源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。 下面举个最简单的例子来描述一下,咱就求个圆面积。 第1步,建立一个空工程(以在VS2003环境下为例)。 第2步,在头文件的文件夹里新建一个名为Circle.h的头文件,它的内容如下: #ifndef CIRCLE_H

#define CIRCLE_Hclass Circle{private:double r;//半径public:

Circle();//构造函数 Circle(double R);//构造函数 double Area();//求面积函数};

#endif 注意到开头结尾的预编译语句。在头文件里,并不写出函数的具体实现。 第3步,要给出Circle类的具体实现,因此,在源文件夹里新建一个Circle.cpp的文件,它的内容如下: #include "Circle.h"Circle::Circle(){this->r=5.0;

}Circle::Circle(double R){this->r=R;}double Circle:: Area(){return 3.14*r*r;

} 需要注意的是:开头处包含了Circle.h,事实上,只要此cpp文件用到的文件,都要包含进来!这个文件的名字其实不一定要叫Circle.cpp,但非常建议cpp文件与头文件相对应。 最后,我们建一个main.cpp来测试我们写的Circle类,它的内容如下: #include <iostream>#include "Circle.h"using namespace std;int main(){Circle c(3);

cout<<"Area="<<c.Area()<<endl;return 1;} 注意到开头时有#include "Circle.h"的声明,证明我们使用到了我们刚才写的Circle类。

6.C++:源文件与头文件有什么区别

头文件和源文件在本质上没有任何区别。 只不过一般:后缀为 .h 的文件是头文件,内含函数声明、宏定义、结构体定义等内容。后缀为 .c 的文件是源文件,内含函数实现,变量定义等内容。而且是什么后缀也没有关系,只不过编译器会默认对某些后缀的文件采取某些动作。这样分开写成两个文件是一个良好的编程风格。

简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:

①预处理阶段

②词法与语法分析阶段

③ 编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各 个目标文件 (.obj文件)

④连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关 的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格 式信 息。(生成.exe文件)

3.比方说 在aaa.h里定义了一个函数的声明,然后在aaa.h的同一个目录下建立aaa.c , aaa.c里定义了这个函数的实现,然后是在main函数所在.c文件里#include这个aaa.h 然后我就可以使用这个函数了。 main在运行时就会找到这个定义了这个函数的aaa.c文件。这是因为:main函数为标准C/C++的程序入口,编译器会先找到该函数所在的文件。假定编译程序编译myproj.c(其中含main())时,发现它include了mylib.h(其中声明了函数void test()),那么此时编译器将按照事先设定的路径(Include路径列表及代码文件所在的路径)查找与之同名的实现文件(扩展名为.cpp或.c,此例中为mylib.c),如果找到该文件,并在其中找到该函数(此例中为void test())的实现代码,则继续编译;如果在指定目录找不到实现文件,或者在该文件及后续的各include文件中未找到实现代码,则返回一个编译错误.其实include的过程完全可以“看成”是一个文件拼接的过程,将声明和实现分别写在头文件及C文件中,或者将二者同时写在头文件中,理论上没有本质的区别。以上是所谓动态方式。对于静态方式,基本所有的C/C++编译器都支持一种链接方式被称为Static Link,即所谓静态链接。在这种方式下,我们所要做的,就是写出包含函数,类等等声明的头文件(a.h,b.h,。),以及他们对应的实现文件(a.cpp,b.cpp,。),编译程序会将其编译为静态的库文件(a.lib,b.lib,。)。在随后的代码重用过程中,我们只需要提供相应的头文件(.h)和相应的库文件(.lib),就可以使用过去的代码了。相对动态方式而言,静态方式的好处是实现代码的隐蔽性,即C++中提倡的“接口对外,实现代码不可见”。有利于库文件的转发.

7.C++中为什么要头文件和源文件分开写呢

一般都是代表一个基本功能的源文件引用相应的头文件。

一个 相关功能的模块可能有若干对源文件和头文件组成。这是基于组件编程的核心。

在我看来,他的好处是巨大的,是java不可比拟的,也是不可复制的:

c语言中头文件中一般定义了函数的声明、结构体的定义、宏定义。(常量和全局变量最好放到源文件中)

1) 从业务扩展性上看:头文件中放函数的声明,函数由源文件实现,这就是将面向接口编程:接口和实现分开,这在面对业务变更频繁的需求中技术实现的好处是显而易见的--只要定义出良好地、扩展性高的接口,实现是可以很方便的更换。

2) 从程序架构上看:代码在在大型程序中 需要分成不同的模块,单一模块中又可能分为不同的业务功能单元,他们间有很多相互的调用。

头文件中的方法声明、结构体定义、宏就都可以充当这部分的模块与模块间、业务功能单位间的接口调用。模块与模块间,功能单元与功能单元间都是面向接口的调用,耦合性低,这正是基于组件编程的核心思想。

3) 从某些技术角度实现上看:头文件可通过宏定义来保证类定义、结构体定义、宏定义的唯一性。确实很方便,不容易出错。

在用makefile编译程序时,各个功能单元单独编译,构成中间文件.最终这些中间文件链接成可执行程序,在这些中间文件中重复引用同一头文件是不可避免的。但如果头文件有保护性编程就可以很容易保证类、结构体、宏定义的唯一性 ----最终链接成可执行程序时,可执行程序中代码区中只会有唯一的类、结构体、宏的定义,其他都因为不满足唯一性保护失效。这样的实现是不是很‘优雅’:)))? 我不知道你是否是这样认为,至于我,我是这样认为,haha~

c头文件和源文件怎么写

转载请注明出处育才学习网 » c头文件和源文件怎么写

知识

full怎么写音标

阅读(195)

本文主要为您介绍full怎么写音标,内容包括full怎么读,发个语音或者用拼音汉字代替一下,英语音标都怎么写,关于音标开头小故事fullfool。辅音部分(28个) [ p ] pot pig put people piano potato [ b ] book bag big j

知识

语文园地三习作怎么写

阅读(233)

本文主要为您介绍语文园地三习作怎么写,内容包括语文园地三的作文怎么写,四年级语文园地三作文怎么写,小学四年级下(人教版)语文园地三习作资料。秋天来了,枫叶红了,树叶也黄了。风一吹,金黄的叶子就落了下来。田野里一片金黄,果子在果树上高兴的

知识

学生会的工作报告怎么写

阅读(238)

本文主要为您介绍学生会的工作报告怎么写,内容包括学生会工作报告怎么写啊,学生会工作总结怎么写啊,学生会工作总结怎么写。尊敬的领导老师:现在我将我部一个月以来的主要工作汇报如下,请予评议。一x月份以来的主要工作内容分点来写:如:x月x日,

知识

三年级怎么写人作文

阅读(202)

本文主要为您介绍三年级怎么写人作文,内容包括小学三年级如何写好写人作文,小学三年级上册写人的作文怎么写,小学三年级写事写人的作文怎么写。方法一:抓住人物外貌特点每个人都有和别人不一样的外貌特征,只有抓住特点来写,才能突出人物的与众

知识

公司设立申请书怎么写

阅读(279)

本文主要为您介绍公司设立申请书怎么写,内容包括公司设立申请书怎么写,公司设立登记申请书怎么写谢谢建筑类的,公司设立登记申请书怎么填写。公司设立申请书怎么写:名称:xxxx有限公司名称:预先核准通知书文号:(平)预核字第38号联系电话:xxxxxxxxx

知识

10月1日放假通知怎么写

阅读(264)

本文主要为您介绍10月1日放假通知怎么写,内容包括国庆放假通知怎么写呢,国庆节放假通知怎么写,10.1放假通知。通知: 国庆佳节即将到来,根据国务院关于法定节假日的规定和我单位工作实际情况,现将2010年国庆节放假的有关事项通知如下: 单位放假

知识

办公用品请示怎么写

阅读(257)

本文主要为您介绍办公用品请示怎么写,内容包括公司关于购置办公用品的请示怎么写,购买办公用品的申请报告怎么写谢谢,办公用品申请书怎么写。请示样板一 市区政府: 为适应现代化办公的需要,改善办公条件,提高工作效率,经区政府批准,我局办公地点

知识

笑嘻嘻的的的怎么写

阅读(203)

本文主要为您介绍笑嘻嘻的的的怎么写,内容包括笑嘻嘻的,这样的句子怎么写,照样子写词语笑嘻嘻,用笑嘻嘻的嘻嘻,照样子,写词语,怎么写,帮帮忙。热乎乎 热腾腾 蓝幽幽 蓝湛湛 沉甸甸 白花花 绿油油 黑黝黝 慢腾腾 阴森森 皱巴巴 亮铮铮 香喷

知识

少年日语怎么写

阅读(296)

本文主要为您介绍少年日语怎么写,内容包括“少年”用日语怎么说,日语“少年”怎么读怎么写啊,日语“少年”怎么读怎么写啊。日语“少年”的读写:少年しょうねん少年的相关词语:ハンサム・ボーイ美少年.牛饲いの少年放牛娃;牧童.少年的相关句子

知识

引用知网的论文怎么写

阅读(233)

本文主要为您介绍引用知网的论文怎么写,内容包括知网论文如何正确引用才能顺利通过知网论文查重,论文如何正确引用才能通过知网查重检测,知网查重如何正确引用正确论文引用格式是什么。引用,是写毕业论文最基本的要素。如果你的一篇论文没有

知识

正确格式的金额怎么写

阅读(214)

本文主要为您介绍正确格式的金额怎么写,内容包括如何正确的填写会计金额格式,括号小写金额格式怎样写是正确的比如(11元)还是(11)元搜狗,怎样填写退款运费正确格式的金额。1.举个简单明了的,希望你能看明白。单位支取备用金1000元。借:库存现金 1

知识

1至55英语怎么写

阅读(223)

本文主要为您介绍1至55英语怎么写,内容包括155的英语单词怎么写,155的英语单词怎么写,1:55用英语怎么写。1 - one2 - two3 - three4 - four5 - five6 - six7 - seven8 - eight9 -

知识

幼儿在园一周总结怎么写

阅读(177)

本文主要为您介绍幼儿在园一周总结怎么写,内容包括幼儿园一周总结怎么写,怎样写幼儿园的一周总结,幼儿园一周总结怎样写。(范文模板) 幼儿园周小结 忙忙碌碌的一周又结束了,这一周感觉过的相当快,这一周除了完成教学工作以外,周一周二的中午时间

知识

纪委检查怎么写

阅读(370)

本文主要为您介绍纪委检查怎么写,内容包括违纪检讨书写给纪委,怎么写违纪的检讨书,纪委问责怎么写书面检查,公务员违纪检讨书怎么写恪尽职守。原发布者:会计师菜鸟ON写给纪委的违纪检讨书范文写给纪委的违纪检讨书范文一xx纪委监察局及尊敬

知识

java怎么写头文件

阅读(207)

本文主要为您介绍java怎么写头文件,内容包括为什么java不用写头文件,java都头文件,以及什么时候用,java语言中要使用函数Math头文件应该怎样写急~~。Math类属于java.lang包中的函数,所以在使用的过程中,不需要导入这个库,可以直接使用的。pack

知识

vc头文件怎么写

阅读(203)

本文主要为您介绍vc头文件怎么写,内容包括C++头文件怎么写,用vc6.0写头文件,vc中的头文件。新建linearStack2.h在里面写类的声明新建linearStack2.cpp (注意 名称可以不用 linearStack2 你

知识

数据结构头文件怎么写

阅读(227)

本文主要为您介绍数据结构头文件怎么写,内容包括我想知道在数据结构中的头文件的主要是起什么作用,头文件该怎么写,求数据结构中所有头文件书写形式(C++),数据结构的初学者,不知道怎么做头文件,哪位大虾能把顺序表的头。templateclass Linear

知识

红头文件应该怎么写

阅读(262)

本文主要为您介绍红头文件应该怎么写,内容包括红头文件的正确格式,红头文件的具体格式,红头文件格式模板。http://www.mwr.gov.cn/zwxx/20030227/939.asp国家行政机关公文格式公文用纸格式 公文用纸一般采用

知识

c中的头文件怎么写

阅读(272)

本文主要为您介绍c中的头文件怎么写,内容包括C语言里面怎么写头文件,C语言如何写头文件,C语言中的头文件可以自己写吗。简单办法,先写完整程序,再把一部分抽出去,抽出去的存到 自己的头文件里,在抽出的地方写 #include 例如,完整程序(计算平均值):

知识

html头文件怎么写

阅读(218)

本文主要为您介绍html头文件怎么写,内容包括html5的头文件里该怎么写头文件<header></header>,html5的头文件里该怎么写头文件<header></header>,html上面的头文件是什么。1.html4头文件<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi

知识

python怎么写头文件

阅读(195)

本文主要为您介绍python怎么写头文件,内容包括sublimetext3怎么编写python怎么添加头文件,怎么用python写一个简单的软件,python编辑时可以不要头文件吗。win下py代码,头文件是#-*-encoding:utf-8-*-,是告诉python解释器, 应该以utf-8编码来解

知识

java头文件怎么写

阅读(264)

本文主要为您介绍java头文件怎么写,内容包括java都头文件,以及什么时候用,java语言中要使用函数Math头文件应该怎样写急~~,为什么java不用写头文件。Math类属于java.lang包中的函数,所以在使用的过程中,不需要导入这个库,可以直接使用的。pack

[/e:loop]