0. 前言
转载
C++头文件用<>还是“” 以及 要加.h还是不加 的问题
1. C++头文件用<>包含还是""?
答:用<>包含,编译器会先在系统目录下搜索;
用” ” 包含,编译器会先在用户目录下搜索。
所以,如果使用系统标准库,要使用<>来包含头文件;使用自定义头文件用” “包含最好。
2. 头文件什么时候要加.h什么时候不加?
答:关于这个事情的历史原因等等不赘述,直接怼结论了。
如果使用的是新的C++标准库,不加 .h。例如#include
如果是旧的C++库,很抱歉现在已经不支持了(无奈脸)
此外C++可以兼容使用C语言的库,这里有两种情况。
——第一种是仍旧使用原来C语言的库,可以加 .h,如#include<string.h>
——第二种是对C的库改进成C++的库,不加.h,但是在库名字前加c,表示来自与C语言。例如#include
如果你用的是自己的头文件,都要加 .h。
3. 可执行程序与库文件
在C++工程中,只有带有main函数的cpp文件才会生成可执行程序,其他的cpp只会生成库文件。
而库文件分为静态库(.a)和共享库(.so),这两者的差别在与,静态库每次调用都会生成一个副本,而共享库只有一个副本,更节省空间。
4. 为什么需要头文件?
库文件是一个二进制的压缩包,只有库文件我们并不知道其作用是什么,以及如何使用它。
为了让别人以及自己如何使用这个库文件,我们需要头文件来说明它。
因此有了头文件和库文件,我们就知道如何调用一个库了。