编译预处理
来源:互联网 发布:北宋出相 知乎 编辑:程序博客网 时间:2024/05/29 17:44
1.#include 指令
#include <文件名>
按标准方式搜索,文件位于C++系统目录的include 子目录下
#include "文件名"
首先在当前目录中搜索,若没有,再按标准方式搜索
#include 指令可以嵌套使用,假设有一个头文件myhead.h, 该头文件中又可以有如下的文件包含命令:
#include "file1.h"
#include "file2.h"
2. #ifndef HEAD_H
#define HEAD_H
#endif
由于文件包含指令可以嵌套使用,在设计程序时要避免多次重复包含同一个头文件,否则会引起变量和类的重复定义。例如,某个工程包含下面四个源文件:
// main.cpp
#include "file1.h"#include "file2.h"int main(){ ... }
// file1.h
#include "head.h" .....
// file2.h
#include "head.h" ....
// head.h
#include "head.h"class Point{ ... }...
由于在main.cpp 中,head.h 被包含了两次,于是编译时系统会出现错误:类Point 被重复定义,如何避免呢?要在可能被重复 包含的头文件中使用条件编译指令,用唯一的标识符来标记是否已参加过编译,如果已参与过编译,说明程序段是被重复包含的,编译时忽略重复部分。将头文件"head.h" 改写成如下:
#ifndef HEAD_H
#define HEAD_H
class Point{
......
}
#endif
在这个头文件中,首先判断HEAD_H是否被定义过,若未定义过,说明此头文件尚未参加过编译,于是编译下面的程序段,并且对标识符HEAD_H 进行宏定义,标记此文件已经编译过.若标识符HEAD_H 被定义过,说明此头文件参加过编译,于是编译器自动忽略下面的程序段,这样便不会造成对类Point的重复定义.
0 0
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 编译预处理
- 生成自定义区间随机整数
- MSDN2012离线版
- Linux设备驱动之I2C架构分析
- JAVA获取图片大小和尺寸
- android客户端 j2ee服务器端架构的聊天系统实现思路
- 编译预处理
- Android本地接口JNI的使用分析
- linux下解压命令大全
- 远程连接Mysql
- iOS XML解析类库对比概述
- 操作系统中的进程与线程
- js正则表达式
- test_convolution_timing
- Raw Socket(原始套接字)实现Sniffer(嗅探)