头文件 源文件 对应关系

头文件里面一般是存放函数名字,源文件存放具体的函数定义。 1,头文件是否可以存放具体的函数定义。 2,以数学中余弦函数cos为例。假设另有一个力学中函数也叫cos。编程时,引用的头文件是力学方面的,那么头文件中的cos函数在寻找源文件函数定义时怎么区分是数学中的还是力学中的。是否头文件与源文件的文件名一一对应。

关于问题1:
在C语言中函数的定义不能在头文件中实现。
在C++语言中,类的内联函数,模板函数,模糊类的函数是能够在头文件中实现的。
对于函数来说,声明和定义还是建议分开来做。

关于问题2:
这种情况有两个建议,
(1)力学和数学的函数不能重名;
(2)可以用namespace来加以区分。追问

你的意思我懂了。但头文件中的函数在寻找函数定义时,要对c语言库中的源文件一个个找么?

追答

这个是编译器做的事情,它会在你包含函数声明头文件的*.c/cpp文件中查找。编译之后,函数的接口在代码段上给出一个地址。
使用时,你只要保证包含相应的头文件,其他的事情编译器会帮你做好。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-18
头文件是用户应用程序和函数库之间的桥梁和纽带
 源文件是相对目标文件和可执行文件

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

源文件和头文件的关系
简单理解,头文件就是在源文件头部用来被包含的文件。这里的包含是#include预处理命令,包含的过程就是把头文件的文本完整地复制到源文件中的对应位置,然后删除此行#include预处理命令。由于文件包含是预处理器在翻译过程之前完成的,因此和整个编译过程没有必然联系,一个源文件在与处理过程中可以进行任意...

头文件 源文件 对应关系
在C语言中函数的定义不能在头文件中实现。在C++语言中,类的内联函数,模板函数,模糊类的函数是能够在头文件中实现的。对于函数来说,声明和定义还是建议分开来做。关于问题2:这种情况有两个建议,(1)力学和数学的函数不能重名;(2)可以用namespace来加以区分。

头文件与源文件有什么区别与关系啊 请高手帮帮忙解决
拿c为例,头文件是含有各种函数的文件,比如stdio.h和math.h。在编程中要引用其中的函数时需要include头文件才可以。源文件,其实就是存放源代码的文件,就是存放高级编程语言的文件,另外,多加一个,目标文件就是对应的源代码,编译后的可执行的二进制文件 ...

stm32中.c和.h文件是什么关系?
在STM32嵌入式开发中,`.c` 和 `.h` 文件是C语言编程中的标准源文件和头文件。以下是两者的关系及作用:1. `.h` 头文件:- 包含函数原型声明、宏定义、全局变量声明、结构体定义等。- 为其他文件提供公共的接口和定义。- 通常不包含函数实现代码。- 被其他源文件通过 `#include` 指令包含进来...

.h文件和.cpp文件会有一一对应关系么?
多对多的关系.h是头文件.cpp是程序源文件 一个头文件可以被多个程序源文件引用 而一个程序员文件又可以应用多个头文件 哈哈

c语言多文件编译是什么?怎么实现的?.c和.h的关系怎么样的?
头文件(.h文件)是包含函数、变量、宏定义、枚举、结构体等声明的文件,能够被其他程序引用。这种将程序接口与实现分离的设计,使程序结构更清晰。源文件(.c文件)则是对上述.h文件中声明的变量与函数的具体定义与实现。.c与.h文件之间的对应关系,可以是一对一、一对多、多对一或多对多。一般建议...

请问什么是内核头文件(kernelheaders)、工具链(toolchai
编译器将源代码转换为目标文件;链接器整合目标文件与动态\/静态链接库,理顺引用关系,生成可执行文件或库文件;调试器跟踪程序执行过程,帮助观察并修改运行中的程序状态;make工具则管理源文件之间的依赖关系,确保正确编译。不同目的、应用领域和团队偏好决定了这些工具的多样性。例如,C\/C++和Java在不同...

两个.c和.h头文件引用文件
首先要理解程序的执行过程:源程序-》预处理-》编译-》汇编-》链接 程序执行时,经过预处理把一些不必要的信息去掉,比如说注释。编译时,会把t.h头文件的内容拷贝到a.c或b.c,两个过程是没有影响的。不会出现一边不能使用.h头文件中变量的情况。

听说.h后缀的文件是C语言的头文件,不是C++的。C++的头文件是不用.h结...
C++标准库的头文件<string>和C标准库的头文件<string.h>没什么关系,除了设计目的都是提供字符串操作。<string.h>在C标准库中版本是<cstring>。<string>包含了std::string,是一个class(类模板std::basic_string的实例),在C语言没有对应版本。(除此和 侠盗机密 外,其它的回答都正确。)=== ...

相似回答
大家正在搜