C++ 预处理器的简单介绍
来源:互联网 发布:淘宝hd版下载 编辑:程序博客网 时间:2024/06/06 04:07
C++中的预处理器
1、预处理器
预处理器是C++程序编译的一部分;
预处理器处理程序的源码,在编译器之前运行;
预处理器是C++继承C语言的,但是C++的大量特征减少了预处理器的使用;
C++预处理器的一个重要的用法:#include<头文件>,将头文件并入程序。
2、#include是如何工作的
#include是C++预处理器的一部分,预处理器用指定的头文件内容代替每个#include。
3、头文件经常包含其他头文件,源文件会多次包含同一个头文件。
头文件一:
example_1.h
int a;int b;
头文件二:
example_2.h
#include"example_1.h"int c;int d;
源文件
test.cpp
#include <example_1.h>#include<example_2.h>int main(){}
在设计头文件时,应该可以使头文件多次包含在一个源文件中,但是程序员必须保证的是,多次包含同一头文件不会引起该文件定义的类和对象被多次定义,从上面的例子来看,显然会在example_2.h头文件中对a和b进行一次定义,在test.cpp源文件中对a和b在进行一次定义。这样会产生什么后果呢?
4、针对上面出现的问题,头文件在源文件中被多次包含,引起了对头文件中定义的类和对象多次定义的现象,可以使用预处理器变量来解决。
#define指示接受一个名字并定义该变量为预处理器变量
#ifndef指示检测指定的预处理器变量是否定义。
上面的第一个头文件可以改为:
example_1.h #ifndef EXAMPLE1#define EXAMPLE!int a;int b;#endif
这样,编译器在编译的时候,会先编译example_2.h头文件,发现没有定义EXAMPLE1预处理器变量,于是定义该变量,并定义int a,int b。
编译器继续编译test.cpp源文件是,发现已经定义EXAMPLE1预处理器变量,#ifndef指示为假,该指示和#endif之间的代码将全部被忽略。
- linux & C++Primer 学习笔记--预处理器的简单介绍
- C++ 预处理器的简单介绍
- 预处理器的介绍
- 预处理器的简单介绍#include、#define、#ifdef
- C的预处理器
- c的预处理器
- 关于C语言中的预处理器的简单笔记
- 预处理标识符简单介绍
- C语言的预处理器
- C的简单介绍
- 条件编译和常用预处理标识符的简单介绍
- C 语言中的预处理介绍
- C语言基本教程 第11课:预处理的介绍
- c语言 预处理标识符的介绍及应用举例
- ANSI C 预处理简单总结
- C++Primer::头文件设计基本原则 与 预处理器介绍
- C++预处理器的简单用法
- 【C/C++】C++预处理指令介绍
- 一道概率问题:
- Substring with Concatenation of All Words
- 类选择器(Class)jQuery
- MongoDB的认证范例
- 实验证明在一片Norflash上划分两个TrueFFS分区的误区
- C++ 预处理器的简单介绍
- CATransition 的初级应用及type属性 .
- 云服务基础 – 引入容错数据访问层
- 3种表类型的锁机制
- 安装VMware64位linux系统与在bios开启虚拟化技术
- c/c++ 调试技巧小结
- SQL索引一步到位
- tomcat添加用户
- [转]浮点数解惑