现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

C++中的预处理命令

2012-07-11 23:08 工业·编程 ⁄ 共 882字 ⁄ 字号 暂无评论

C++提供的预处理功能主要有以下3种

1、宏定义

2、文件包含

3、条件编译

为了与一般C++语句相区别,这些命令以符号#开头,而且末尾不包含分号

宏定义

用#define命令将一个指定的标识符(即宏名)来代表一个字符串。定义宏的作用一般是用一个短的名字代笔一个长的字符串。它的一般形式

#define  标识符  字符串

在C语言中用#define定义符号常量,由于C++已增加了const语句以定义常变量,因此#define在实际上已不多用

#define命令定义带参数的宏定义,一般形式

#define 宏名(参数表) 字符串

#define S(a, b)  a*b  // 定义宏S(矩形面积),a,b为宏的参数

“文件包含”处理

是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。C++提供了#define命令实现“文件包含”的操作。

在#include命令中,文件名除了可用尖括号括起来以外,还可以用双撇号括起来。

#include <iostream.h> 系统到系统目录中寻找要包含的文件,如果找不到,编译系统就给出出错信息。所谓系统目录是指存放C++系统的目录。

#include "iostream.h"  从当前目录中寻找

条件编译

希望程序中某一部分只在满足一定条件时才进行编译,也就是指定对程序中的一部分内容进行编译的条件。如果不满足这个条件,就不编译这部分内容。

(1)#ifdef  标识符

程序段1

       #else

程序段2

       #endif

作用是当所指定的标识符已经被#define命令定义过,则在程序编译阶段只编译程序段    1,否则编译程序段2。#endif 用来限定#ifdef的命令范围。其中#else部分也可以没有。

(2)#ifndef 标识符

程序段1

      #else

程序段2

  #endif

作用是若标识符未被定义过,则编译程序段一,否则编译程序段二

(3) #if 表达式

程序段 1

  # else

程序段 2

      #endif

     是当指定的表达式值为真时就编译程序段1,否则编译程序段2。可以事先给定一定条件,使程序在不同的条件下执行不同的功能。

给我留言

留言无头像?