C语言中 .c和.h有什么区别
发布网友
发布时间:2022-04-22 06:16
我来回答
共3个回答
热心网友
时间:2023-12-18 08:55
一、意思不同
.h中一般放的是同名.c文件中定义的变量、数组、函数的声明,需要让.c外部使用的声明。
.c文件一般放的是变量、数组、函数的具体定义。
二、用法不同
.c文件,以c为扩展名,一般存储具体功能的实现。
.h文件,称为头文件,一般存储类型的定义,函数的声明等。通常,头文件被.c文件包含,使用#include 语句。但值得注意的是,这只是一种约定,而非强制。
三、作用
如果在h文件中实现一个函数体,那么如果在多个C文件中引用它,而且又同时编译多个C文件,将其生成的目标文件连接成一个可执行文件,在每个引用此h 文件的C文件所生成的目标文件中,都有一份这个函数的代码,如果这段函数又没有定义成局部函数,那么在连接时,就会发现多个相同的函数,就会报错。
如果在h文件中定义全局变量,并且将此全局变量赋初值,那么在多个引用此h文件的C文件中同样存在相同变量名的拷贝,关键是此变量被赋了初值,所以编 译器就会将此变量放入DATA段,最终在连接阶段,会在DATA段中存在多个相同的变量,它无法将这些变量统一成一个变量,也就是仅为此变量分配一个空 间,而不是多份空间,假定这个变量在h文件没有赋初值,编译器就会将之放入BSS段,连接器会对BSS段的多个同名变量仅分配一个存储空间。
热心网友
时间:2023-12-18 08:56
C语言的源文件分为两种:
1、.c文件,以c为扩展名,一般存储具体功能的实现;
2、.h文件,称为头文件,一般存储类型的定义,函数的声明等。
通常,头文件被.c文件包含,使用#include 语句。
但值得注意的是,这只是一种约定,而非强制。
事实上,将声明写在.c文件,比如a.c,然后
#include "a.c"
同样是合法的。
而把.h文件,内部写入函数实现,再在.c文件中引用,也是编译器允许的。
所以,.c与.h的区分,本质上是一种约定。一名合格的软件开发人员,也要遵循这个约定,增加代码的可读性和维护性。
热心网友
时间:2023-12-18 08:56
头文件用於定义类型
c文件主要用於写实现.
C语言中 .h文件和.c文件区别
C语言中的.h文件和.c文件在结构和功能上有所不同,它们各自扮演着独特的角色。首先,让我们来看看它们的主要区别:1. 功能含义:.h文件,也称为头文件,主要用于声明函数、变量以及常量等,它不包含函数的具体实现。而.c文件,负责编写函数的详细实现代码,以及执行逻辑。2. 用法上的区别:当在.h文...
c语言的头文件. h和. c有啥不同?
一、意思不同 .h中一般放的是同名.c文件中定义的变量、数组、函数的声明,需要让.c外部使用的声明。.c文件一般放的是变量、数组、函数的具体定义。二、用法不同 .c文件,以c为扩展名,一般存储具体功能的实现。.h文件,称为头文件,一般存储类型的定义,函数的声明等。通常,头文件被.c文件包含,...
C语言.c.h有什么不同?
1. 在C语言中,`.c`和`.h`文件分别代表源文件和头文件。2. `.h`文件通常用作包含声明和宏定义的地方,它指导编译器如何处理和链接代码。3. 头文件后缀为`.h`是为了区分不同的文件类型,便于识别。4. 尽管`.h`文件在技术上不是必需的,但在多人的开发环境中,它有助于代码的组织和分类,...
c语言中.c和.h有什么区别
在C语言中,.c和.h文件有各自独特的用途和含义。详细解释:1. .c文件 .c文件是C语言中的源代码文件,通常包含具体的函数实现、变量定义等。它是编译单元,意味着编译器会单独编译每一个.c文件,将其转换为目标文件。在项目中,每个.c文件通常对应一个模块或功能。例如,如果你有一个名为“math_f...
C语言中 .c和.h有什么区别
在C语言编程中,.c和.h文件扮演着不同的角色,它们之间的区别主要体现在功能、用法和作用上。首先,让我们来看它们的不同含义:.h文件,通常称为头文件,主要作用是声明同名的.c文件中定义的变量、数组和函数。这些声明是为了让其他.c文件能够知道它们的存在,但函数的具体实现并不在.h文件中。.c...
. h和. c有什么区别?
.c文件包含实现特定功能的代码。.h文件,也被称作头文件,它包含的是类型定义、宏、外部变量声明和函数原型等。在C语言编程中,我们通常通过#include指令在.c文件中包含头文件,以便重用定义和声明。三、功能作用差异 如果在.h文件中定义了一个函数体,当这个.h文件被多个.c文件包含时,每个.c文件都会...
c语言中的. h文件和. cpp文件有什么区?
本质上没有任何区别。 只不过一般:.h文件是头文件,内含函数声明、宏定义、结构体定义等内容.c文件是程序文件,内含函数实现,变量定义等内容。而且是什么后缀也没有关系,只不过编译器会默认对某些后缀的文件采取某些动作。你可以强制编译器把任何后缀的文件都当作c文件来编。编译器在编译时是以C文件为...
C语言中 .c和.h有什么区别
通常,头文件被.c文件包含,使用#include 语句。但值得注意的是,这只是一种约定,而非强制。事实上,将声明写在.c文件,比如a.c,然后#include "a.c"同样是合法的。 而把.h文件,内部写入函数实现,再在.c文件中引用,也是编译器允许的。所以,.c与.h的区分,本质上是一种约定。一名合格的...
C语言中,分成好几个.c和.h文件的理解
你好,.c是源文件,而.h是头文件,一般把函数的声明都放在头文件中,而实现就都在.c文件当中,你只要把这弄清楚了就好了。希望我的解答能给你带来帮助,谢谢!望采纳
*.h和*.c文件的区别
.h为头文件,.c为源文件,其实两者都是代码,为什么要做这样的区分呢?主要有几点好处:一是头文件用于共享,只用一句#include就能包含,当然.c也可以包含;二是如果你要写库的话,可是你又不想暴露你的源代码,你可以把.c编译成.obj或是.lib发给别人用,然后把.h作为使用说明书。所以一般情况下,...