C语言里有时候头文件光是声明了函数却没有定义函数,为啥就能用那??

我指的是keil之类单片机的编译器。VC里的咋回事也可以说说。

头文件的函数的实现文件都在其他文件中,比如VC++就是在那些.LIB和.DLL文件中。这样可以把实现文件转化为LIB和DLL,就可以保护你的源代码。而只留出来头文件,给别人看,别人用头文件作为接口,调用LIB或者DLL中的函数。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-30
头文件.h本来就是声明用,实现在具体的.c里面做。
在编译的时候,只要知道函数的原型就可以了,因此需要头文件。另外,对于库lib,只是在链接的时候用到。
第2个回答  2019-10-16
由于函数的声明与定义可以保存在多文件下,因此标准头文件内只需要进行声明即可使用,而定义则保存在隐藏的受保护文件内
第3个回答  2010-08-30
要么是安装软件本身自带的库里的,要么就是在程序后面定义了,都可以用本回答被提问者采纳
第4个回答  2010-08-30
能够使用 肯定是有实现的。你可以全局搜索一下这个函数,就可以找到他的实现。如果找不到,那说明没有实现的源码,源码是写在动态链接库(dll)中的

C语言里有时候头文件光是声明了函数却没有定义函数,为啥就能用那??
头文件的函数的实现文件都在其他文件中,比如VC++就是在那些.LIB和.DLL文件中。这样可以把实现文件转化为LIB和DLL,就可以保护你的源代码。而只留出来头文件,给别人看,别人用头文件作为接口,调用LIB或者DLL中的函数。

c语言给了头文件printf没有定义不能识别怎么解决求大
1. 检查头文件路径:确保包含的头文件路径正确无误。在代码中使用`#include`命令引入头文件。例如,`#include `用于引入标准输入输出函数库。2. 检查依赖库:函数未定义的错误可能源于缺失的依赖库。在GCC编译命令中添加`-l`参数,指定需要的库。对于标准输入输出库,使用`-l`和`libstdc++`(或具体版...

C语言中在一个函数中可以声明另一个函数吗(不是定义)?在main里面声明也...
一、在不用的地方申明,那作用域也就不同,那么在main里边声明也就只能在main函数里起作用(函数内声明叫局部声明,反之在函数外部声明就叫全局声明)。二、以如果你声明在外部,那么从申明开始之后的代码都能使用它。三、对于函数声明,工程上一般都声明在函数外部,且声明在头文件中,以便其它文件也能...

C语言为什么只包含h文件就可以 那C函数呢?没有包含进去也会调用 是怎...
包含头文件后,C编译器,会根据你所用到的头文件去链接相应的系统函数库。这样就可以实现相应的函数调用了。这是编译(暗中)做的事,开发者看不到。

为什么不包含头文件却可以调用函数,谁来解释
旧的C语言中,函数原型声明不是必需的。对于没有声明的函数,被认为是返回int类型

C语言头文件只包含对函数的声明,但又是如何找到相应函数的定义的,求解...
如果相应函数在你自己的项目中,在链接时工具会自动从项目文件的目标文件中寻找该函数。如果这个函数是在库文件中,则工具会从库中找到这个函数。如果都没有,工具会报错。

C语言中定义头文件和函数调用有什么区别和联系?
函数定义中包含了函数声明。如果没有在调用前自行定义(例如定义在外部库文件中),那么需要在调用前加上声明,即函数头加分号的形式(形式参数名被编译器忽略,因此可省略)。当多个源文件可能要用到公共的声明时,可以和宏定义等代码一起写进头文件。头文件包含是简单的文本替换,即用头文件的内容代替...

C语言中的库函数定义在什么地方啊?
这对代码没有一个有用的。其实在头文件中只有函数的声明而没有函数的定义。这个头文件是给程序员看的,好让你知道有这些函数。那真正的函数定义在那呢?其实库文件中的函数早就已经编译好了存在.obj或者是.lib的文件里面。这种是静态的连接模式。在你的程序便已完成以后连接器再将你的程序的.obj文件...

C++的一个项目文件,在一个头文件中用extern声明了一个对象,另一个文件...
在1里定义不用写extern 在2里引用要 用extern声明吧!c语言是这样,c++应该也是 你搞反了

为什么我在编译C语言的时候,没有包括头文件,也能编译?
头文件只是一个申明函数变量结构的作用,如果你的代码中没有用到头文件中的内容就不需要包含头文件

相似回答