C++一些基本概念总结【面向过程篇】——编译预处理
2017-03-28 21:51
357 查看
编译预处理
作用:编译器在第一遍扫描之前所做的工作,处理完预处理部分再编译。
包括:宏定义、包含文件处理、条件编译等。
(1)文件包含:#include 可以去官方指南:http://www.cplusplus.com/reference/
cin、cout:iostream.h
printf、scanf:stdio.h
<>:在包含文件目录中去找,系统默认头文件
“”:去当前的源文件找,比如用户自定义的文件。找不到再去包含目录
允许包含嵌套
(2)条件编译:#if #ifndef #ifdef #endif #undef:注释掉一些代码
#ifdef 标识符
1 如果标识符已被#define定义过,则对1进行编译
#else 可以省略
2
#endif
#ifndef与上面类似
#if 常量表达式
1 表达式为真,对1编译
#else
2
#endif
(3)布局控制:#progma:非常规的控制流信息
(4)宏替换:
不带参数:#define 宏名 字符串
其中,字符串可以是常数,表达式,格式串等
取消宏:#undef
可以宏嵌套
带参数:#define 宏名(形参表) 字符串
内联函数:将一个函数定义成inline后,每次调用就直接替换成函数体中的代码,省去函数调用,传参,返回等操作时间,加快执行速度
(5)其他:
#error 出错信息:遇到则停止编译
#line
作用:编译器在第一遍扫描之前所做的工作,处理完预处理部分再编译。
包括:宏定义、包含文件处理、条件编译等。
(1)文件包含:#include 可以去官方指南:http://www.cplusplus.com/reference/
cin、cout:iostream.h
printf、scanf:stdio.h
<>:在包含文件目录中去找,系统默认头文件
“”:去当前的源文件找,比如用户自定义的文件。找不到再去包含目录
允许包含嵌套
(2)条件编译:#if #ifndef #ifdef #endif #undef:注释掉一些代码
#ifdef 标识符
1 如果标识符已被#define定义过,则对1进行编译
#else 可以省略
2
#endif
#ifndef与上面类似
#if 常量表达式
1 表达式为真,对1编译
#else
2
#endif
(3)布局控制:#progma:非常规的控制流信息
(4)宏替换:
不带参数:#define 宏名 字符串
其中,字符串可以是常数,表达式,格式串等
取消宏:#undef
可以宏嵌套
带参数:#define 宏名(形参表) 字符串
内联函数:将一个函数定义成inline后,每次调用就直接替换成函数体中的代码,省去函数调用,传参,返回等操作时间,加快执行速度
(5)其他:
#error 出错信息:遇到则停止编译
#line
相关文章推荐
- C++一些基本概念总结【面向过程篇】——指针
- C++一些基本概念总结【面向过程篇】——数组
- C++一些基本概念总结【面向过程篇】——函数
- Linux预处理、编译、汇编、链接和运行的过程(包括一些基本的命令)
- C++一些基本概念总结【数据表达篇】
- c++基础:C++的一些基本概念
- C++编译过程中常见的一些错误
- 总结extern “C”时引发的血案——c++的“编译、链接”原理与过程
- C++基本概念总结——静态成员
- WebService 的一些基本概念-3 (Target namespace,WSDL 和总结)
- C++主流预处理,编译和链接过程
- Mail的一些基本概念总结
- c++程序编译过程总结(个人理解)
- C++基本概念总结——引用和指针
- C/C++预处理过程与语句总结
- C++基本概念总结——声明(declaration)和定义(definition)
- 有必要澄清两个基本概念--算法和过程的关系以及关于程序设计方法论的一些看法
- 网站统计的一些基本概念总结
- C/C++预处理过程与语句总结
- C++基本概念总结——const 和 非const