预处理命令



   



  #error指令使预处理器发出一条错误消息,该消息包含指令中的文本。这条指令的目的就是在程序崩溃之前能够给出一定的信息。
 
  三 #include
 
  命令#i nclude使编译程序将另一源文件嵌入带有#include的源文件,被读入的源文件必须用双引号或尖括号括起来。例如:
 
  #include"stdio.h"或者#include
 
  这两行代码均使用C编译程序读入并编译用于处理磁盘文件库的子程序。
 
  将文件嵌入#i nclude命令中的文件内是可行的,这种方式称为嵌套的嵌入文件,嵌套层次依赖于具体实现。
 
  如果显式路径名为文件标识符的一部分,则仅在那些子目录中搜索被嵌入文件。否则,如果文件名用双引号括起来,则首先检索当前工作目录。如果未发现文件,则在命令行中说明的所有目录中搜索。如果仍未发现文件,则搜索实现时定义的标准目录。
 
  如果没有显式路径名且文件名被尖括号括起来,则首先在编译命令行中的目录内检索。如果文件没找到,则检索标准目录,不检索当前工作目录。
 
  四条件编译命令
 
  有几个命令可对程序源代码的各部分有选择地进行编译,该过程称为条件编译。商业软件公司广泛应用条件编译来提供和维护某一程序的许多顾客版本。
 
  #if、#else,#elif及#endif
 
  #if的一般含义是如果#if后面的常量表达式为true,则编译它与#endif之间的代码,否则跳过这些代码。命令#endif标识一个#if块的结束。
 
  #if constant-expression
 
  statement sequence
 
  #endif
 
  Eg:
 
  #define MAX 91
 
  #include
 






  using namespace std;
 
  int main()
 
  {
 
  #if MAX > 99
 
  cout《"MAX is bigger than 99"《endl;
 
  #elif MAX > 90
 
  cout《"MAX is bigger than 90"《endl;
 
  #else
 
  cout《"MAX is smaller than 90"《endl;
 
  #endif
 
  return 0;
 
  }
 
  跟在#if后面的表达式在编译时求值,因此它必须仅含常量及已定义过的标识符,不可使用变量。表达式不许含有操作符sizeof(sizeof也是编译时求值)。
 
  #else命令的功能有点象C语言中的else;#else建立另一选择(在#if失败的情况下)。注意,#else属于#if块。
 
  #elif命令意义与ELSE IF 相同,它形成一个if else-if阶梯状语句,可进行多种编译选择。#elif 后跟一个常量表达式。如果表达式为true,则编译其后的代码块,不对其它#elif表达式进行测试。否则,顺序测试下一块。
 
  #if expression
 
  statement sequence
 
  #elif expression1
 
  statement sequence
 
  #endif
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值