宏定义课件讲解.pptx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

预处理命令—宏定义

宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个字符串。这样,在源程序被编译器处理之前,预处理器会将标识符替换成所定义的字符串。根据是否带参数,可以将宏定义分为不带参数的宏定义和带参数的宏定义。

预处理命令—宏定义

.1不带参数的宏定义

在程序中,经常会定义一些常量,比如,3.14、“ABC”。如果这些常量在程序中被频繁使用,难免会出现书写错误的情况。为了避免程序书写错误,可以使用不带参数的宏定义来表示这些常量。

#define标识符字符串

预处理命令—宏定义

脚下留心

宏定义中参数的替换

1、如果宏定义中的字符串出现运算符,需要在合适的位置加上括号,如果不添加括号可能会出现错误。

2、宏定义的末尾不用加分号,如果加了分号,将被视为被替换的字符串的一部分。由于宏定义只是简单的字符串替换,并不进行语法检查,因此,宏替换的错误要等到系统编译时才能被发现。

3、宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在替换时由预处理程序嵌套替换。

多学一招

#undef指令取消宏定义

除了#define之外,相应地还有#undef指令,#undef指令用于取消宏定义。在#define定义了一个宏之后,如果预处理器在接下来的源代码中看到了#undef指令,那么#undef后面这个宏就都不存在了,如例8-2所示。

.2带参数的宏定义

不带参数的宏定义只能完成一些简单的替换操作。如果希望程序在完成替换过程中,能够进行一些更加灵活的操作,例如,根据不同的半径计算圆的面积,这时可以使用带参数的宏定义。

#define标识符(形参表)字符串

预处理命令—宏定义

多学一招

预定义宏

学习了宏定义,下面来看下stdio.h头文件中的五个预定义宏,利用这些宏可以轻松获得程序运行到了何处,有助于编程人员进行程序调试。

预定义宏

说明

__DATE__

定义源文件编译日期的宏

__FILE__

定义源代码文件名的宏

__LINE__

定义源代码中行号的宏

__TIME__

定义源文件编译时间的宏

__FUNCTION__

定义当前所在函数名的宏

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档