1.2.7 代码编辑器(Code Editor)
Visual C++(www.cppentry.com) 6.0提供的代码编辑器是一个非常出色的文本编辑器,可用于编辑C/C++(www.cppentry.com)头文件和C/C++(www.cppentry.com)源文件等多种类型的文件。
1. 代码编辑器中的预处理
在新创建的文件起始部分会有一些预处理命令。编译预处理是指在对源程序进行正式编译之前,根据源程序中的编译预处理指令对源程序进行预先处理。预处理器查找预处理指令,每条指令都以“#”开头,这些指令的作用是改变源代码,生成新的源代码文件。可以指示编译器保存它,并在需要时检查它。
(1)#include文件包含指令
在代码编辑器中,所有的.cpp文件在起始部分都会有几行#include文件包含指令。
文件包含是指一个源文件可以将另外一个源文件的全部内容包含进来,格式如下。
- 01 #include <文件名>
- 02 #include "文件名"
第1种格式,告诉编译器在自带的或外部库的头文件中搜索要嵌入的文件,一般是系统提供的,存放在系统目录中的include子目录下。
第2种格式,告诉编译器先在程序目录下搜索要嵌入的文件,如果没有找到指定的文件,再搜索编译器自带的或外部库头文件。
(2)条件编译指令
预处理指令也有各种语法,可以有选择性地执行某些预处理指令,或者有选择性地只编译源代码的某部分,让预处理指令有更多的变化,形式如下。
第1种形式如下所示。
- 03 #ifdef <标识符>
- 04 <命令行1>
- 05 #else
- 06 <命令行2>
- 07 #endif
当<标识符>已经定义过(一般是用#define命令定义),则编译<命令行1>,否则编译<命令行2>,当没有<命令行2>时,可以省略#else部分。
第2种形式如下所示。
- 08 #ifndef <标识符>
- 09 <命令行1>
- 10 #else
- 11 <命令行2>
- 12 #endif
当<标识符>没有定义过,则编译<命令行1>,否则编译<命令行2>。
第3种形式如下所示。
- 13 #if <表达式>
- 14 <命令行1>
- 15 #else
- 16 <命令行2>
- 17 #endif
当指定的表达式为真时编译<命令行1>,否则编译<命令行2>。
还有两种形式,#if defined()和#if !defined(),其中#if defined()和#ifdef的功能相同,#if !defined()和#ifndef的功能相同。
2. 代码编辑器的功能
代码编辑器除了具有复制、查找和替换等一般功能外,还具有根据C++(www.cppentry.com)语法将不同元素按照不同颜色进行显示等特色功能。
代码编辑器具备自动提示功能,当用户输入程序代码时,编辑器会显示对应的成员函数和成员变量,用户可以在成员列表中选择需要的成员,减少了输入工作量,也避免了输入错误,如图1.32所示。
|
| 图1.32 编辑器自动提示 |