C++预处理器指示符

几个预处理指示符的使用

#include

   头文件通过 include 预处理器指示符(preprocessor include directive) 而成为我们程序的 一部分 预处理器指示符用 # 号标识 这个符号将放在程序中该行的最起始一列上 处理 这些指示符的程序被称做预处理器 preprocessor 通常捆绑在编译器中 。

#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 );

原文链接: https://www.cnblogs.com/charley_yang/archive/2010/12/08/1900737.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++预处理器指示符

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/18505

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午7:18
下一篇 2023年2月7日 下午7:19

相关推荐