c++高手进!c++标准头文件没有.h那么没有.h的头文件还分头文件和库文件吗???

过去c语言的.h文件里面是函数的声明,.lib文件时具体的实现,那么没有.h的头文件,它还有对应的库文件吗???

头文件和库文件不是一一对应的。关键还是看你有没有库文件的函数声明,没有的话,可以用工具把库文件的函数声明导出来。追问

我看了确实不是一一对应的,那stdio.h文件中只有printf函数的声明,stdio.h还没有对应的库文件,那它的实现是在哪里?

追答

stdio.h这是系统自带的库里的函数,通常放在编译器默认的位置,如turobc的printf实现在cc.lib中。你打开tc->options->directories...->Library Directories就可看到编译器默认位置。

追问

我用的是vc6.0

追答

VC6.0默认lib包含路径在下面设置:Tools>Options>Directories>Library files
你打开默认lib包含路径,使用查找工具在lib文件中查找acsII码printf,找到后就知道vc的printf在那个库实现了!

追问

找到了E:\Program Files\Microsoft Visual Studio\VC98\Lib但是查不到printf?

追答

你使用查找工具在E:\Program Files\Microsoft Visual Studio\VC98\Lib对每一个lib文件进行查找,我知道tc是用cc.lib实现printf函数也是这种方法,我没装vc6,看不到这些库!

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-21
有,现在标准c++库类为了和自定义库类区分,已经 去掉了后面的h,实际上就是原来的那个库
第2个回答  2013-01-21
虽然我想问你的.lib文件是啥意思,但是我忍了。
首先扩展名只是一种易于识别的记号,对文件内容没有任何影响。C++标准库文件是没有扩展名的,这是自某次标准更新之后就达成的共识,原因是新版文件与旧版文件某些部分是不兼容的,新版文件中有更多的东西,为了向前兼容,所以在保留的同时为了不引起混淆和麻烦,修改了规则。
头文件是声明,但并不代表其中不会包含实现,特殊的就是内联。实现文件时cxx、cc、cpp扩展名所标识的文件中,lib是归档文件,是一组中间对象文件的集合,使用ar程序拆开可以发现一个或者数个.o(bj)文件存在。标准头文件有可能对应库,也有可能不对应任何库,关键看编译器的处理,比如gcc就可以将所有的标准库文件作为源文件静态编译之后链接,也可以独立提供libstdc++-6.dll之类的共享库提供基础功能。