C++头文件

头文件:

预编开始第一步:会把头文件的全部内容直接"黏贴"到相应的#include处
头文件不能单独编译,需要一个 .cpp文件来生成 .pch 文件.
 

头文件的结构

头文件组成:
1 头文件开头处的版权和版本声明(参见示例1-1)。
2 预处理块。
3 函数和类结构声明等。
 
假设头文件名称为 graphics.h,头文件的结构参见示例1-2。
1 为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。
2 用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。
3 用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索,工作目录没有还会继续搜索标准库目录)。
4 头文件中只存放“声明”而不存放“定义”
在C++ 语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。建议将成员函数的定义与声明分开,不论该函数体有多么小。
5 不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明。
 

头文件的作用

1 C\C++采用源文件单独编译为object文件,最后有链接器链接object文件成为可执行文件。头文件解决了彼源文件中变量和函数在此源文件中引用。
2 头文件中的函数接口和全局变量起占位符的作用和参数类型与表达式匹配的合法行检测的作用,早期的C编译器不具有后者的功能。
3 便于一二进制的形式发行类库,隐藏源码实现的细节。
 

头文件预编译

把一个工程(Project)中使用的一些标准头文件(如Windows.H、stdio.h)或者那些稳定的,不会被频繁修改的代码或者其它头文件预先编译,以后编译该工程时,不再编译这部分代码和头文件,仅仅使用预编译的结果(.pch文件)。这样可以加快编译速度,节省时间。(注意:如果包含在预编译头文件的这些代码被修改,则需要重新编译生成预编译头文件,而生成预编译头文件很耗时间。)
### C++头文件的使用方法及常见类型 C++头文件是程序中包含的预定义代码集合,用于提供函数、类和变量的声明。通过在源文件中包含这些头文件,开发者可以调用其中定义的功能[^1]。 #### 头文件的基本使用方法 在C++中,头文件通过`#include`指令引入到程序中。头文件可以分为标准库头文件和用户自定义头文件两种。标准库头文件通常以尖括号`<>`包裹,例如`#include <iostream>`,而用户自定义头文件则以双引号`""`包裹,例如`#include "math.h"`[^2]。 #### 常见的标准库头文件 以下是一些常见的C++标准库头文件及其功能: 1. **输入输出流** - `#include <iostream>`:提供基本的输入输出功能,例如`std::cout`和`std::cin`[^1]。 2. **字符串处理** - `#include <string>`:支持C++风格的字符串操作,例如`std::string`[^1]。 3. **数学运算** - `#include <cmath>`:包含数学函数,如`sin`、`cos`、`sqrt`等[^3]。 - `#include <complex.h>`:提供复数处理功能[^3]。 4. **数据结构** - `#include <vector>`:支持动态数组`std::vector`[^1]。 - `#include <map>`:实现键值对存储的关联容器`std::map`。 5. **算法** - `#include <algorithm>`:提供各种通用算法,例如排序、查找等。 6. **时间与日期** - `#include <ctime>`:用于时间日期操作,例如`std::time`。 7. **布尔与整型环境** - `#include <stdbool.h>`:定义布尔类型`bool`[^3]。 - `#include <stdint.h>`:定义固定宽度的整型类型,例如`int8_t`[^3]。 #### 注意事项 虽然存在一些“万能头文件”,例如`#include <bits/stdc++.h>`,它几乎包含了所有C++标准库头文件,但由于其包含的内容过多,可能导致编译速度变慢,因此建议根据实际需求选择性地包含头文件[^1]。 ```cpp #include <iostream> #include <vector> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; for (const auto& num : numbers) { std::cout << num << " "; } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值