编译预处理
作用:编译器在第一遍扫描之前所做的工作,处理完预处理部分再编译。
包括:宏定义、包含文件处理、条件编译等。
(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