姐夫的唠叨

BlogJava 联系 聚合 管理
  0 Posts :: 6 Stories :: 0 Comments :: 0 Trackbacks
c语言中有一种特殊的语言构造:预处理语句。预处理语句是由'#'开始,后跟一个预处理指令以及一个或多个参数的语句,预处理语句只能独占一行,如果需要跨多行,需要在换行之前使用一个'\',在编译器的预处理阶段,当预处理器碰到一个'\'后面紧跟一个换行符时,预处理器会同时把这两个字符给删除。

include预处理指令是用来包含其它文件的,通常用来包含一些以 h 为后缀名的头文件,当然也可以包含c语言成语的源文件。include指令有两种语法:
                #include <file>
                #include "file"

预处理器会使用文件file的内容来替换这两条include语句。

第一种语法用于包含系统包含路径中的文件,第二中语法在搜索系统路径之前会先在包含文件的当前目录下查找。在第二种语法中,文件名可以包含目录,当包含目录时,预处理器只会在包含文件的当前目录下查找。

在include语句中可以使用宏,但必须保证在预处理这条include指令时,语句中所使用的宏,有确切的值。

例如:
           
               #define INC_FILE "myProject.h"
               #include INC_FILE

这两条语句经过预处理器处理之后会生成如下的语句:

              #include "myProject.h"

最终,预处理器会使用myProject.h文件的内容来替换这条语句。

include指令是可以嵌套的,即被包含的文件中也可以使用include预处理语句包含其它文件,这种嵌套最多可以有15层。这样就很有可能出现在一个文件中多次包含了同一个文件。

为了避免这种情况,可以使用另一个种预处理语句:条件编译。可以在被包含的文件中,使用条件编译。

避免重复包含

          #ifndefine _INCFILE_H_
          #define _INCFILE_H_
               /* 文件的内容 */
          #endif
posted on 2009-01-12 09:31 姐夫的唠叨 阅读(194) 评论(0)  编辑  收藏 所属分类: C语言

只有注册用户登录后才能发表评论。


网站导航: