﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-姐夫的唠叨-文章分类-C语言</title><link>http://www.blogjava.net/kingLv/category/37243.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 12 Jan 2009 16:02:23 GMT</lastBuildDate><pubDate>Mon, 12 Jan 2009 16:02:23 GMT</pubDate><ttl>60</ttl><item><title>C语言学习笔记（一）</title><link>http://www.blogjava.net/kingLv/articles/250920.html</link><dc:creator>姐夫的唠叨</dc:creator><author>姐夫的唠叨</author><pubDate>Mon, 12 Jan 2009 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/kingLv/articles/250920.html</guid><wfw:comment>http://www.blogjava.net/kingLv/comments/250920.html</wfw:comment><comments>http://www.blogjava.net/kingLv/articles/250920.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kingLv/comments/commentRss/250920.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kingLv/services/trackbacks/250920.html</trackback:ping><description><![CDATA[c语言中有一种特殊的语言构造：预处理语句。预处理语句是由'#'开始，后跟一个预处理指令以及一个或多个参数的语句，预处理语句只能独占一行，如果需要跨多行，需要在换行之前使用一个'\'，在编译器的预处理阶段，当预处理器碰到一个'\'后面紧跟一个换行符时，预处理器会同时把这两个字符给删除。<br />
<br />
include预处理指令是用来包含其它文件的，通常用来包含一些以 h 为后缀名的头文件，当然也可以包含c语言成语的源文件。include指令有两种语法:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #include "file"<br />
<br />
预处理器会使用文件file的内容来替换这两条include语句。<br />
<br />
第一种语法用于包含系统包含路径中的文件，第二中语法在搜索系统路径之前会先在包含文件的当前目录下查找。在第二种语法中，文件名可以包含目录，当包含目录时，预处理器只会在包含文件的当前目录下查找。<br />
<br />
在include语句中可以使用宏，但必须保证在预处理这条include指令时，语句中所使用的宏，有确切的值。<br />
<br />
例如：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #define INC_FILE "myProject.h"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #include INC_FILE<br />
<br />
这两条语句经过预处理器处理之后会生成如下的语句:<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #include "myProject.h"<br />
<br />
最终，预处理器会使用myProject.h文件的内容来替换这条语句。<br />
<br />
include指令是可以嵌套的，即被包含的文件中也可以使用include预处理语句包含其它文件，这种嵌套最多可以有15层。这样就很有可能出现在一个文件中多次包含了同一个文件。<br />
<br />
为了避免这种情况，可以使用另一个种预处理语句：条件编译。可以在被包含的文件中，使用条件编译。<br />
<br />
避免重复包含<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #ifndefine _INCFILE_H_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #define _INCFILE_H_<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* 文件的内容 */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #endif<br />
<img src ="http://www.blogjava.net/kingLv/aggbug/250920.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kingLv/" target="_blank">姐夫的唠叨</a> 2009-01-12 09:31 <a href="http://www.blogjava.net/kingLv/articles/250920.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>