宏(macro)和内联函数(inline function)的区别

宏是一段代码,它是预处理器指令。内联函数是C++增强功能,以最小化程序的执行时间。因此,宏和内联函数的关键区别在于,宏由预处理器检查,而内联函数由编译器检查。...

关键区别–宏与内联函数

宏是一段代码,它是预处理器指令。内联函数是C++增强功能,以最小化程序的执行时间。因此,宏和内联函数的关键区别在于,宏由预处理器检查,而内联函数由编译器检查。

宏包含在程序的开头,前面有一个哈希符号。当程序中有宏名称时,它将被宏的内容替换。

目录

1. 概述和主要区别
2. 什么是宏
3. 什么是内联函数
4. 并排比较-表格形式的宏与内联函数
5. 摘要

什么是宏(macro)?

预处理器是在源代码通过编译器之前对其进行处理的程序。它使用预处理器命令行或指令进行操作。在程序中,预处理器指令放在主程序之前的源程序中。在源代码通过编译器之前,它由预处理器检查预处理器指令。预处理器指令具有#符号。与其他语句不同,它们不以分号结尾。预处理器指令的一种类型是宏。一般来说,宏是用大写字母写的。

宏(macro)和内联函数(inline function)的区别

图01:带有宏的C++程序

根据上面的程序,第3行和第4行表示宏。计算面积时,使用定义的宏替换PI值。在第14行volume=CUBE(value)中,预处理器将语句展开为volume=(value*value*value)。找到立方体可以写成函数,但在这里它是用宏写的。如果有一个语句volume=CUBE(x+y),那么它将扩展为volume=(x+y*x+y*x+y)。

一些编程标记很容易键入错误。可以使用宏替换它们。e、 g.#定义和&,#定义或| |。宏定义还可以包含表达式,例如#define AREA 4*5.56。

什么是内联函数(inline function)?

当一个函数被调用时,编译器需要一些时间来执行它。如果函数不是很复杂,程序员可以将函数转换为内联函数。参考以下程序。

宏(macro)和内联函数(inline function)的区别

图02:没有内联的函数

print_hello是一个简单的函数。它在调用函数时打印字符串“Hello”。该函数的执行时间为0.187s,使用inline关键字如下,执行时间减少到0.064s。

宏(macro)和内联函数(inline function)的区别

图03:内联函数

因此,通过使用inline关键字,可以减少执行时间。如果存在循环、switch语句以及函数包含静态变量或递归函数,则内联函数可能无法工作。

宏(macro)和内联函数(inline function)的区别

宏与内联函数
宏是一段代码,它是一个预处理器指令,包含在程序的开头,前面有一个哈希符号。 内联函数是C++增强功能,以最小化程序的执行时间。
评估时间
在宏中,每次在程序中使用参数时都会对其求值。 在inline中,参数被计算一次。
审核人
预处理器检查宏。 编译器检查内联函数。
关键字
马可用“定义”。 inline函数使用关键字“inline”。
使用
宏可用于定义常量、表达式、文本替换和函数定义等。 内联函数可用于最小化程序的执行时间。
终止
宏以新行结束。 内联函数以内联函数结尾处的大括号结束。
定义点
在程序开始时定义一个Marco。 内联函数可以在类的内部或外部。

总结 - 宏(macro) vs. 内联函数(inline function)

本文讨论了宏和内联函数之间的区别。C++编程中使用了这些概念。宏和内联函数的区别在于,宏由预处理器检查,而内联函数由编译器检查。

引用

  • 发表于 2020-10-19 00:27
  • 阅读 ( 405 )
  • 分类:IT

你可能感兴趣的文章

宏(macro)和微生境(micro habitat)的区别

大生境与微生境的关键区别在于,大生境是一个大尺度的环境,是一个更为广阔的生境,而小生境是一个范围有限的小而专门的单一生境。 栖息地是一个特定物种或生物群落生活的地方。它是一种为特定物种或一组有机体的...

  • 发布于 2020-09-27 13:59
  • 阅读 ( 230 )

块(block)和内联元素(inline elements)的区别

关键区别-块与内联元素 HTML代表超文本标记语言。是用来创建网页的。每个网页都使用超链接连接到其他网页。这种语言由标记组成。标记用尖括号括起来。语法类似于<tag name>。大多数标记也有结束标记。当&amp...

  • 发布于 2020-10-19 13:55
  • 阅读 ( 229 )

状态函数(state function)和路径函数(path function)的区别

状态函数(state function)和路径函数(path function)的区别 热力学是物理化学的一个重要分支,它揭示了不同形式的能量和功之间的热化学关系。有四个热力学定律用于描述热力学系统的行为。状态函数和路径函数是表示系统不同热...

  • 发布于 2020-10-24 02:43
  • 阅读 ( 1410 )

如何在word中开始使用宏

...一个简单但有用的示例:如何自动执行Word的查找和替换函数。 ...

  • 发布于 2021-03-29 01:36
  • 阅读 ( 223 )

如何用宏自动化google工作表

...通方法来完成它。 因为录制的宏在googleapps脚本中存储为函数,所以要导入宏,需要复制函数,然后将其粘贴到新工作表的宏文件中。 打开包含要复制的宏的Google工作表,然后单击“工具”>“宏”>“管理宏”。 接下来,...

  • 发布于 2021-04-03 14:37
  • 阅读 ( 173 )

内联(inline)和v型发动机(v engines)的区别

直列vs V引擎 直列和V型发动机是非常受欢迎的配置之间的汽车,甚至在多缸摩托车。它们之间的主要区别在于气缸的排列方式。直列发动机的气缸呈直线,而V型发动机的气缸分为两组,并以一定角度呈V型排列;导致发动机配...

  • 发布于 2021-06-23 19:52
  • 阅读 ( 412 )

微型的(micro)和宏(macro)的区别

...来指大或大规模。 Macro Photography 微型的(micro)和宏(macro)的区别 意思 微意味着小。 宏意味着大。 起源 Micro源自希腊语mikro。 宏源于希腊语宏。 反义词 Micro是mega或macro的反义词。 宏是micro或mini的反义词。 Image Courtesy: “Macro photogr...

  • 发布于 2021-06-27 23:27
  • 阅读 ( 333 )

静止的(static)和C++中的常量函数(constant function in c++)的区别

... 静态函数,常数函数,C++ 什么是C++中的静态函数(static function in c++)? 用static关键字定义的函数是静态函数。通常,函数处理对象。程序员使用对象来调用这些函数。但是,它在静态函数中是不同的。它们在类级别工作,而不...

  • 发布于 2021-07-01 09:34
  • 阅读 ( 272 )

友元函数(friend function)和C++中的正规函数(normal function in c++)的区别

...C++,Fuffic函数,正规函数 什么是C++中的Fuffic函数(friend function in c++)? 类中可以有私有和受保护的数据成员。不可能访问类外的私有数据成员。我们可以通过类及其子类访问受保护的成员。因此,这两个访问修饰符限制对数据成...

  • 发布于 2021-07-01 11:43
  • 阅读 ( 249 )

函数声明(function declaration)和c程序设计中的函数定义(function definition in c programming)的区别

...,函数声明,函数定义 什么是c程序设计中的函数声明(function declaration in c programming)? 函数声明指示编译器关于特定函数的信息。语法如下。 返回\类型函数\名称(参数列表); 函数名有助于识别函数。参数列表包含传递给函...

  • 发布于 2021-07-01 13:49
  • 阅读 ( 353 )
srvs13626
srvs13626

0 篇文章

相关推荐