【好程序员学习笔记】C语言 编译预处理命令.doc_第1页
【好程序员学习笔记】C语言 编译预处理命令.doc_第2页
【好程序员学习笔记】C语言 编译预处理命令.doc_第3页
【好程序员学习笔记】C语言 编译预处理命令.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译预处理命令文件包含:把指定的文件插入到预处理命令行所在的位置并取代该命令行,即把指定的文件和当前的源程序文件连接成一个源文件。#include在文件包含目录中去查找指定的文件,并将该文件添加到源文件中。一个被包含的文件中可以含有文件包含命令来包含另一个文件。#include“文件名”命令中文件名的位置是当前源文件的位置,若在当前目录中未找到该文件,则再到“包含目录”中去查找。宏用一个标识符表示一个字符串,称为宏,被定义为宏的标识符称为宏名。在编译预处理时对程序中所有出现的宏名用宏定义中的字符串去代换,这就是宏替换。它是由系统编译程序时自动完成的。无参宏定义#define标识符 字符串如#define PI 3.14使用宏时要注意:(1) 宏定义是用宏名来表示一个字符串,在宏展开时用字符串取代宏名。(2) 宏定义不是变量定义或语句,在行末不能加分号,如果加上分号则分号也成为字符串的一部分。(3) 宏定义可以出现在程序的任何地方,其作用域是宏定义命令所在位置开始到源程序结束。如果要终止其作用域可使用#undef命令。(4) 宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开时将逐层替换。(5) #define PI 3.1415926#define AREA PI*y*y有参宏定义#define宏名(形参表) 字符串对带参数的宏,在调用中不仅要进行宏展开,而且还要用实参去替换形参。带参宏调用的语法格式如下:宏名(实参表);#define M(x) x+1K=M(3);K=3+1定义有参宏时要注意以下几点:(1) 有参宏定义中,宏名和形参表之间不能有空格出现。(2) 在函数中,调用时要把实参的值赋给形参,进行“值传递”。而在带参宏调用中,只是符号替换,不存在值传递问题。(3) 宏定义中的形参只能是标识符,而宏调用中的实参可以是表达式。宏替换中对实参表达式不做计算直接照原样替换,字符串内的形参通常用括号括起来以避免出错。在使用宏时不仅要将形式参数用括号括起来,还应将其整体用括号括起来。#define S(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常量表达式#if常量表达式程序段1#else程序段2#endif功能:如果常量表达式的值为真(非0),则对程序段1进行编译,否则对程序段2进行编译,因此可以使程序在不同条件下,完成不同的功能。上面介绍的条件编译实现的逻辑也可以用条件语句来实现,但是用条件语句将会对整个源

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论