1、常用预处理归纳
预处理器的主要作用就是把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有:文件包含,条件编译、布局控制和宏替换4种。
文件包含
#include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。
条件编译
#if,#ifndef,#ifdef,#endif,#undef等也是比较常见的预处理,主要是进行编译时进行有选择的挑选,注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。
布局控制
#progma,这也是我们应用预处理的一个重要方面,主要功能是为编译程序提供非常规的控制流信息。
宏替换
#define,这是最常见的用法,它可以定义符号常量、函数功能、重新命名、字符串的拼接等各种功能。
2、常见预处理指令
指令 用途
# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 未定义宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏被定义,则编译下面代码
#ifndef 如果宏未被定义,则编译下面的代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个#if…#else条件编译块
#error 停止编译并显示错误信息
#line 改变编译器用来指出警告和错误信息的文件号和行号
#pragma 为编译程序提供非常规的控制流信息
调试时,可通过#ifdef进行输出
#ifdef DEBUG
std::cout << "DEBUG NOW" << std::endl;
#endif