一个虽简单而又本质的问题
各位c的大老们,小弟有一些疑惑.
我看了c标准库里面的头文件,每一个头文件里面都只有声明,没有实现任何
函数,是不是c的编译器里内制了这些函数的实现?
c++里面的标准库里也是这样的吧,都只提供声明,具体实现是否在编译器里还是其他地方实现的?
小弟比较菜,请各位别笑话.
[解决办法]
lib文件,cpp文件,实现的
[解决办法]
标准库已经是经过编译的了,你只需要链接就可以了,所以只需要利用头文件指明如何链接(头文件提供了链接所需的相关信息了),链接程序就可以通过头文件名对应的库文件,一般是Lib为扩展名,或者其他一些扩展名(编译链接系统识别就行了)中提取相应部分编译后数据进你的执行文件。
[解决办法]
就是这样啊,那些库文件和目标文件就是,不让你看到源码的,这就是.h文件出现的实质
[解决办法]
要看源码,你可以去看看开源的C/C++编译器的源代码,比如gcc。
另外,C++的STL的实现是在头文件中的,这是由于模板的特性决定的(目前还没有支持模板声明和实现分离编译的编译器)。