C++常见问题
来源:互联网 发布:阿里云邮箱如何添加 编辑:程序博客网 时间:2024/06/11 19:47
整理一下我碰见过的C++常见问题,会不断编辑更新:
1. 预处理
预处理的主要作用就是对资源进行等价替换,最常见的预处理有:文件包含(#include ),条件编译(#if,#ifndef,#ifdef,#endif,#undef),布局控制(#pragma),宏替换等(#define)等。
1.1 头文件中放什么?
头文件一般用于类的定义、extern变量和函数的声明。由于头文件可能被包含在多个源文件中,所以不应该含有变量定义或函数的定义。比如不要将这样的定义:
extern int a = 10; //有初始化,相当于定义。const int a = 10; //可以,但是最好将其定义到原文件中,然后用 extern int a; 引入。int a; //将其定义到原文件中,然后用 extern int a; 引入。
1.2 #include如何工作?
预处理时用头文件里的内容替换每一个#include的地方。所以需要用头文件保护符(#ifndef ... #define ... #endif)以防止多重包含。<>中的头文件表示标准头文件,查找时开始于预定义的位置;""中的头文件是非系统文件,查找时开始于源文件所在路径。
2. 编译连接
编译连接是编译器的事情,但应该知道这个过程都做了些什么。(以下过程为转抄,我觉得不是说的很清楚)
首先是预编译,由cpp完成。将c和cpp文件转为*.i文件。
然后是编译过程,由cc完成。文件是基本的编译单元,编译后将生成由带变量的汇编语句组成的*.s文件。
之后是汇编过程,由汇编器as完成。生成*.o/*.obj文件,其实就是可重定位的连接格式文件。
最后是连接过程,由用ld/link完成。主要任务是符号匹配和重定位符号,生成可执行文件。
3. C++基础知识
- C常见问题
- C 语言常见问题集
- C 语言常见问题集
- c编程常见问题
- C语言常见问题.pdf
- c&cpp常见问题
- C 语言常见问题集
- C/C++常见问题
- C语言常见问题详解
- C语言常见问题
- C 语言常见问题集
- C常见问题之static
- [C++]笔试常见问题
- C/C++常见问题
- c语言常见问题
- c语言常见问题汇总
- C/C++常见问题集
- C语言常见问题汇总
- 测试标题
- java用apache包压缩文件夹
- Cookie跨子域、虚拟目录, 实现通行证登录
- VB.net关于sql数据库的备份与恢复
- java批量压缩/解压文件夹
- C++常见问题
- SQLAlchemy连接mssql的demo
- 设置.png格式图像在BLEND中成为可变色图像的方法
- 如何修复Solaris 10的FMA错误
- 常用的一些LINQ查询
- oracle10g+windows2003 dataguard完整配置方案
- 博客搬家了哈!
- 关于IBM R61e (7649AG2)
- 如何自定义数据表及字段对应关系