关于c语言头文件的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 08:48:30
我知道c程序中如果要使用系统的库函数或者第三方的库函数,都需要在程序开头把这些相对应的头文件包含进来,我原来以为这些函数是在头文件中定义的,可是我查了以下stdio.h这个头文件,发现这些函数只有声明,而没有实现,整个头文件中只有常量和函数声明,那么这些它的函数到底是怎么实现的呢?
比如说这是printf函数在stdio.h中的定义
extern int printf (__const char *__restrict __format, ...);
它没有函数实现。
假如我自己有一系列的程序,封装了一些常用算法,我希望以后能在其他程序中使用,那我是不是也应该使用头文件,这种情况下该怎么写头文件。
c语言中的头文件是不是就类似于java中的接口?

假如我自己有一系列的程序,封装了一些常用算法,我希望以后能在其他程序中使用,那我是不是也应该使用头文件,这种情况下该怎么写头文件。
答案是肯定的,如果你想用就一定需要一个头文件,他的写法和一般头文件一样,包含所有你封装起来的函数申明。

c语言中的头文件是不是就类似于java中的接口?
对,应该可以说是接口,他提供的头文件中定义了很多函数,他的具体实现你是找不着的,他们被封装在一个.dll的文件中了。dll是一个动态链接库,当你调用了头文件中了函数时,系统会加载这个动态链接库来实现这么函数的运算。
提供给你的封装应该包含两个文件,一个是.lib文件,一个是.dll文件。lib用在程序编译的时候,dll用在程序运行的时候。

你说的这些函数已经封装了,或者在lib里或者在dll里,你看到的只是定义。
关于你的补充问题:你可以使用头文件,也就是.h,函数体为.cpp,但是在另外一个程序里,你要建立一个工程,把ccp和头文件都加进去。比如在vc里你把头文件和cpp加进去之后就可以用了。头文件实际上就是你函数的定义,光写定义就行。

应该是调用了操作系统的部分功能或C的其他函数(你可能没找到位置),而只在头文件中包含进去使用,并不需要真正再编写有相似或同样功能的函数来实现。

库函数当然看不到具体实现咯。头文件只是做了相应的函数声明,具体的源代码已经编译成静态库或者动态库了(Linux下为共享库)。你想封装常用算法的话,现把各函数在不同的.c文件中实现,然后用头文件进行声明,把这些.c文件通过开发工具(依赖不同的开发平台)编译成库文件。其他程序要用的话把这个头文件include进来,然后再把库文件加载进来就OK了~

肯定是没有实现的,在java里,叫做抽象,