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
该字符串包含括号中指定的参数。
宏定义只占用编译时间,而函数调用占用运行时间(分配单元、保存字段、值传输、返回)。每次执行都必须加载,因此执行速度比宏定义慢。
当宏定义被多次使用时,源程序在宏定义展开后会很长时间,因为每次展开都会使程序增长,但执行速度更快(这不是绝对的)。当宏定义扩展较多时,目标文件很大,执行过程中系统频繁换页,效率较低)。函数调用不会使源程序变长。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。
上一篇
容器云开源 开源容器管理平台