C++面经整理
前言
2024新年伊始,我也到了要准备工作的时候了,我计划开始写一篇长篇的C++面经整理,记录看到的点滴面经。
目录:(一级标题:知识框架;二级标题:知识领域;三级标题:面试问题:四级:内容)
- C++语言
- 特性
- 原理
- 内存安全
- 工具
- 算法题
- Linux
- 操作系统
- 计算机网络
- 设计模式
- 测试调优
- 数据库原理
C++语言
特性
C++11有哪些特性?
C++20有哪些特性?
原理
cpp编译一般经过几个步骤?
预处理阶段:在这个阶段,预处理器处理源文件中的预处理指令,比如
#include
、#define
等。预处理器会根据这些指令展开头文件并替换宏定义,生成一个经过预处理的源文件。1
g++ -E source.cpp -o source.ii
编译阶段:编译器将预处理后的源文件转换成汇编代码。在这个阶段,编译器会对源文件进行词法分析、语法分析和语义分析,并生成相应的中间代码或汇编代码。
1
g++ -S source.ii -o source.s
汇编阶段:汇编器将汇编代码转换成机器码或者目标文件。在这个阶段,汇编器会将汇编代码转换成可重定位的机器码,并生成目标文件。
1
as source.s -o source.o
链接阶段:链接器将目标文件和库文件链接在一起,生成最终的可执行文件。在这个阶段,链接器会解析目标文件之间的引用关系,将它们连接到正确的位置上,并将库文件中的函数和变量链接到可执行文件中。
1
g++ source.o -o executable