关于c语言头文件的问题
来源:百度知道 编辑:UC知道 时间:2024/05/27 08:48:30
比如说这是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里,叫做抽象,