预处理命令
预处理命令是在程序编译之前(包括词法和语法分析、代码生成、优化等)对程序做的相应处理。经过预处理后的程序不在包括预处理命令,这可以改进程序的设计环境,提高编程效率。
预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。
预处理功能有以下3种:
1. 宏定义
2. 文件包含
3. 条件编译
4. 其他
***********************************************************************************************************
#define 宏定义
#undef 取消宏
#include 文件包含
#ifdef 如果宏被定义就编译
#ifndef 如果宏未定义就编译
#endif 结束编译块控制
#if 表达式非零就对代码进行编译
#else 其他预处理的选项
#elif else if
#line 改变当前的行数和文件名称
#error 输出一个错误信息
#pragmatic 为编译程序提供非常规的控制流信息
***********************************************************************************************************
一、宏定义
宏定义和const常变量以及内置函数inline
二、文件包含
#include <iostream>
#include <iostream.h>
#include "IO.h"
我们主张使用<iostream>,而不是<iostream.h>
首先,.h格式的头文件早在98年9月份就被标准委员会抛弃了,我们应该紧跟标准,以适合时代的发展。
其次,iostream.h只支持窄字符集,iostream则支持窄/宽字符集。
还有,标准对iostream作了很多的改动,接口和实现都有了变化。
最后,iostream组件全部放入namespace std中,防止了名字污染。
三、条件编译
#if defined WIN32 || defined _WIN32
...code...
#end if
四、其他
#line
#error
#pragma
参考:
http://www.cnblogs.com/lidabo/archive/2012/08/27/2658914.html