C语言编译预处理命令

C语言编译预处理命令

ID:37916094

大小:32.00 KB

页数:3页

时间:2019-06-02

C语言编译预处理命令_第1页
C语言编译预处理命令_第2页
C语言编译预处理命令_第3页
资源描述:

《C语言编译预处理命令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译预处理命令文件包含:把指定的文件插入到预处理命令行所在的位置并取代该命令行,即把指定的文件和当前的源程序文件连接成一个源文件。#include<文件名>在文件包含目录中去查找指定的文件,并将该文件添加到源文件中。一个被包含的文件中可以含有文件包含命令来包含另一个文件。#include“文件名”命令中文件名的位置是当前源文件的位置,若在当前目录中未找到该文件,则再到“包含目录”中去查找。宏用一个标识符表示一个字符串,称为宏,被定义为宏的标识符称为宏名。在编译预处理时对程序中所有出现的宏名用宏定义中的字符串去代换,这就是宏替换。它是由

2、系统编译程序时自动完成的。无参宏定义#define标识符字符串如#definePI3.14使用宏时要注意:(1)宏定义是用宏名来表示一个字符串,在宏展开时用字符串取代宏名。(2)宏定义不是变量定义或语句,在行末不能加分号,如果加上分号则分号也成为字符串的一部分。(3)宏定义可以出现在程序的任何地方,其作用域是宏定义命令所在位置开始到源程序结束。如果要终止其作用域可使用#undef命令。(4)宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开时将逐层替换。(5)#definePI3.1415926#defineAREAP

3、I*y*y有参宏定义#define宏名(形参表)字符串对带参数的宏,在调用中不仅要进行宏展开,而且还要用实参去替换形参。带参宏调用的语法格式如下:宏名(实参表);#defineM(x)x+1K=M(3);K=3+1定义有参宏时要注意以下几点:(1)有参宏定义中,宏名和形参表之间不能有空格出现。(2)在函数中,调用时要把实参的值赋给形参,进行“值传递”。而在带参宏调用中,只是符号替换,不存在值传递问题。(3)宏定义中的形参只能是标识符,而宏调用中的实参可以是表达式。宏替换中对实参表达式不做计算直接照原样替换,字符串内的形参通常用括号括起

4、来以避免出错。在使用宏时不仅要将形式参数用括号括起来,还应将其整体用括号括起来。#defineS(y)((y)*(y))条件编译条件编译可以按不同的条件去编译不同的程序段。1#ifdef#ifdef标识符程序段1#else程序段2#endif功能:如果标识符已被#define定义过,则对程序段1进行编译,否则对程序段2进行编译。格式中的#else部分可以没有,即:#ifdef标识符程序段#endif2、#ifndef语法格式如下:#ifndef标识符程序段1#else程序段2#endif功能与ifdef形式的功能正好相反。3、#if常

5、量表达式#if常量表达式程序段1#else程序段2#endif功能:如果常量表达式的值为真(非0),则对程序段1进行编译,否则对程序段2进行编译,因此可以使程序在不同条件下,完成不同的功能。上面介绍的条件编译实现的逻辑也可以用条件语句来实现,但是用条件语句将会对整个源程序进行编译,生成的目标代码程序较长,运行时间也较长,采用条件编译则根据条件只编译其中的程序段1或程序段2,生成的目标程序较短。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。