C++学习笔记:预处理、进制转换与函数默认参数
需积分: 27 67 浏览量
更新于2024-09-08
2
收藏 30KB MD 举报
"C++基础知识的学习笔记,包含了C++的文件转换过程、进制输出、bool类型显示、数组长度计算、防止头文件重复包含、函数参数默认值以及内联函数等核心概念。"
C++作为一门强大的面向对象编程语言,其基础知识涵盖了多个方面。下面将深入解析这些知识点:
1. **文件转换顺序**:
C++程序的编译过程分为多个阶段,首先是预处理器阶段,它处理`#include`指令,展开宏定义,如`#define`,并处理条件编译指令,例如`#ifdef`,生成中间文件hello.i。接着是编译阶段,编译器将预处理后的文本转换为汇编代码,生成hello.s。然后汇编器将汇编代码转化为机器可理解的目标文件hello.o(在Windows系统中可能是hello.obj)。最后,链接器将所有必要的目标文件和库文件合并,生成可执行文件。
2. **进制输出**:
C++提供了多种输出进制的方式,可以使用`std::oct`设置输出为八进制,`std::dec`为十进制,`std::hex`为十六进制。例如,通过`std::cout << std::oct << 数值`可以将数值以八进制形式输出。
3. **boolalpha函数**:
`std::boolalpha`是一个操纵符,用于控制流的布尔输出格式。当它被激活后,`true`和`false`将被打印出来,而不是1和0。
4. **计算数组长度**:
要获取数组的长度,可以使用`sizeof`运算符除以元素的大小。如示例所示,`sizeof(arr)/sizeof(int)`得到的是数组`arr`中元素的个数,即数组的长度。
5. **防止头文件重复包含**:
为了避免头文件在同一编译单元中被多次包含导致的问题,可以使用条件编译指令`#ifndef`,`#define`,`#endif`或者C++特有的`#pragma once`来确保头文件只被包含一次。
6. **函数参数默认值**:
函数参数可以设置默认值,但有默认值的参数必须位于参数列表的末尾。这样,如果调用函数时省略了后面的参数,编译器会使用默认值。例如,`void fun(int i, int j=3, int k=5)`,在不同的调用中,可以根据传入的参数数量和顺序自动填充默认值。
7. **内联函数**:
内联函数是一种优化技术,用于提高程序执行效率。它们在编译时被展开,而不是在运行时进行函数调用。内联函数通常用于小型且频繁调用的函数,以减少函数调用带来的开销。声明内联函数时,前面加上`inline`关键字,例如`inline int max(int a, int b, int c)`。
以上是C++基础知识的部分要点,掌握这些对于理解和编写C++程序至关重要。在实际编程中,还需要理解指针、类与对象、继承、多态、模板等更深入的概念,才能更好地利用C++进行复杂系统的设计和开发。
2019-08-13 上传
2021-04-19 上传
2021-04-19 上传
2021-02-01 上传
2020-03-26 上传
小白大爷
- 粉丝: 7
- 资源: 7
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全