C++中的预处理
来源:互联网 发布:网络信息安全方案 编辑:程序博客网 时间:2024/05/01 23:39
预处理器指示符用‘#’标识,例如:#include。
处理这些指示符的程序被称为“预处理器”,通常预处理器是捆绑在编译器中的。
#include <file1.h>
#include "file2.h"
用尖括号<>括起来来的,表明这个头文件是一个标准头文件,查找的时候会从预定义的目录开始,我们可以通过设置路径环境变量或命令行选项来修改这个路径。
用引号“”括起来的,表明该文件是由用户提供的头文件,查找的时候会从当前目录开始查找。
条件指示符可以防止一个头文件被重复定义。
#ifndef BOOKSTORE_H
#define BOOKSTROE_H
#endif
其中BOOKSTORE_H是一个预编译器常量(通常大写)。
编译C++程序时,编译器会自动定义一个预处理器常量__cplusplus(前面是两个下划线),我们可以根据这个预处理器常量来判断一个程序是否是C++程序
在编译标准C时,编译器会自动定义__STDC__。当然__cplusplus和__STDC__不能同时被定义。
还有两个比较有用的预定义名字__LINE__和__FILE__。
_LINE__记录文件已经被编译的行数;__FILE__记录正在被编译的文件名。例子如下:
_if ( element_count == 0 )
cerr << "Error: " << __FILE__
<< " : line " << __LINE__
<< "element_count must be non-zero./n";
__TIME__和__DATE__分别表示当前被编译文件的开始编译时间和日期。
如果开始的时间是2011年3月22号15点23分30秒,则__TIME__表示15:23:30;__DATE__表示March 22 2011
在编译一个文件时,只有__LINE__发生了改变,__FILE__、__TIME__、__DATE__都不变;如果编译的文件发生变化时,则这四个预编译名字都发生了改变。
assert.h是一个C库头文件的名字,每一个C库的头文件都有一个C++名字,C库文件的C++名字总是以C开头,并且将末尾的.h去掉。
assert.h的C++名字就是cassert。
C++程序调用C库头文件的方法有两种:
第一种是直接使用C库的头文件名:
#include <assert.h>
另一种是使用C库头文件的C++名字,但是由于所有的C++库名字是在命名空间std中定义的,在程序文本文件中是不可见的,因此,需要使用using标识符显式的使其可见。
#include <cassert>
using namespace std;
- C中的预处理命令
- C中的预处理器
- C中的预处理命令
- C++/C中的预处理命令;
- C 语言中的预处理介绍
- C语言中的预处理详解
- C语言中的预处理详解
- C语言中的编译预处理
- C语言中的预处理详解
- C语言中的预处理指令
- C语言中的预处理详解
- C语言中的预处理命令
- c016---c语言中的预处理
- C语言中的预处理详解
- C语言中的预处理详解
- C 语言中的预处理命令
- Keil C 中的预处理命令const
- C语言预处理中的 # 和 ## 运算符
- apache遇到The requested operation has failed的问题
- Dojo 1.6 最新官方教程: Dojo DOM 函数
- 快速排序算法所有版本的c/c++实现
- GCC链接中的库依赖
- unix定时执行命令:crontab
- C++中的预处理
- GCC链接中的库依赖
- 使用Remoting 技术将对象序列化
- Android自定义组件
- POP800免费在线客服系统
- C# FTP操作类
- 弯弯
- hibernate之查询(创建查询对象)
- Direct3D立即模式与保留模式