C语言中.c和.h有什么区别

C语言中.c和.h有什么区别,第1张

一、意思不同

.h中一般放的是同名.c文件中定义的变量、数组、函码喊皮数的声明,需要让.c外部使用的声明。

.c文件一般放的是变量、数组、函数的具体定义。

二、用法不同

.c文件,以c为扩展名,一般存储具体功能的实现。

.h文件,称为头文件,一般存储类型的定义,函数的声明等。通常,头文件被.c文件包含,使用#include 语句。但值得注意的是,这只是一种约定,而非强制。

三、作用

如果在h文件中实现一个函数体,那么如果在多个C文件中引用它,而且又同时编译多个C文件,将其生成的目标文件连接成一个可执行文件,在每个引用此h 文件的C文件所生成的目标文件中,都有一份这个函数的代码,如果这段函数又没有定义成局部函数,那么在连接时,就会发现多个相同的函数,就会报错。

如果在h文件中定义全局变量,并且将此全局变量赋初值,那么在多个引用此h文件的C文件中同样存在相同变量名的拷贝,渗滑关键是迟差此变量被赋了初值,所以编 译器就会将此变量放入DATA段,最终在连接阶段,会在DATA段中存在多个相同的变量,它无法将这些变量统一成一个变量,也就是仅为此变量分配一个空 间,而不是多份空间,假定这个变量在h文件没有赋初值,编译器就会将之放入BSS段,连接器会对BSS段的多个同名变量仅分配一个存储空间。

C语言的源文件分为两种:

1、.c文件,以c为扩展名,一般存储具体功能的实现;

2、.h文件,称为头文件,一般存储类型的定义,函首告数数的声明等。

通常,头文件友塌被.c文件包含,使用#include 语句。

但值得注意的是,这只是一种约定,而非强制。

事实上,将声明写在.c文件,比如a.c,然后

#include "a.c"

同样是合法的。 

而把.h文件,内部写入者首函数实现,再在.c文件中引用,也是编译器允许的。

所以,.c与.h的区分,本质上是一种约定。一名合格的软件开发人员,也要遵循这个约定,增加代码的可读性和维护性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12248787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存