2016 - 2024

感恩一路有你

define条件编译 宏定义用法?

浏览量:2942 时间:2021-03-14 19:36:01 作者:admin

宏定义用法?

说到宏定义,我们首先应该了解什么是预处理指令。我相信你对它并不陌生。在编写程序之前,程序开头的include指令和define指令都是预处理指令,这使得我们的编译更加高效和方便。因此,用户可以在C语言中添加一些特定的预处理指令。

C语言提供的预处理功能有:宏定义、文件包含、条件编译。今天,我将带大家学习宏定义。宏定义有两种,一种是“无参数宏定义”,另一种是“有参数宏定义”。

1、无参数宏定义

无参数宏定义相对简单,它使用指定的标识符来表示字符串。它的一般形式是;

#define identifier string

它的功能是用这个程序文件中指定的标识符E替换2.71828459。在预处理中,指令后的所有e都被2.7182818459替换。此方法允许用户用简单名称替换长字符串,因此此标识符(名称)称为“宏名称”

在预处理期间用字符串替换宏名称的过程称为“宏扩展”。#Define是宏定义指令。

2、带参数宏定义

带参数宏定义不仅是一个简单的字符串替换,也是一个参数替换。其定义的一般形式是;

#define identifier(macro name)(parameter table)string

该字符串包含括号中指定的参数。

宏定义只占用编译时间,而函数调用占用运行时间(分配单元、保存字段、值传输、返回)。每次执行都必须加载,因此执行速度比宏定义慢。

当宏定义被多次使用时,源程序在宏定义展开后会很长时间,因为每次展开都会使程序增长,但执行速度更快(这不是绝对的)。当宏定义扩展较多时,目标文件很大,执行过程中系统频繁换页,效率较低)。函数调用不会使源程序变长。

define条件编译 递归调用的形式和特点 内联函数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。