C++预处理器指示符
时间:2010-12-08 来源:charley_yang
#ifndef
被包含的文件还可以含有#include 指示符 由于嵌套包含文件的原因 一个头文件可能 会被多次包含在一个源文件中,条件指示符可防止这种头文件的重复处理 例如 :
#ifndef BOOSTORE_H #define BOOKSTORE_H /* Bookstore.h 的内容 */ #endif
为了保证头文件只被处理一次 把#define 指示符 #define BOOKSTORE_H 放在#ifndef后面 这样在头文件的内容第一次被处理时 BOOKSTORE_H将被定义 从而防止了在程序文本文件中以后#ifndef指符的值为真 。
#ifdef
#ifdef指示符常被用来判断一个预处理器常量是否已被定义 以便有条件地包含程序代码 例如
int main() { #ifdef DEBUG cout << "Beginning execution of main()\n"; #endif string word; vector< string > text; while ( cin >> word ) { #ifdef DEBUG cout << "word read: " << word << "\n"; #endif text.push_back( word ); } // ... }
我们在编译程序时可以使用-D选项 并且在后面写上预处理器常量的名字 这样就能在 命令行中定义预处理器常量 :
$ CC -DDEBUG main.C
也可以在程序中用#define 指示符定义预处理器常量 。
assert
assert()是C语台标准库中提供的一个通用预处理器宏。
#include <assert.h>
或
#include <cassert>
using namespace std;
下面是一个简单的使用示例
assert( filename != 0 );
相关阅读 更多 +