宏函数与自定义函数区别

1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.

2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的.

3. 宏在编译之前进行,即先用宏体替换宏名,然后再编译的,而函数显然是编译之后,在执行时,才调用的.因此,宏占用的是编译的时间,而函数占用的是执行时的时间.

4. 宏的参数是不占内存空间的,因为只是做字符串的替换,而函数调用时的参数传递则是具体变量之间的信息传递,形参作为函数的局部变量,显然是占用内存的.

5. 函数的调用是需要付出一定的时空开销的,因为系统在调用函数时,要保留现场,然后转入被调用函数去执行,调用完,再返回主调函数,此时再恢复现场,这些操作,显然在宏中是没有的.

内联函数: 所谓"内联函数"就是将很简单的函数"内嵌"到调用他的程序代码中,只样做的目的是为了避免上面说到的第5点,目的旨在节约下原本函数调用时的时空开销. 但必须注意的是:作为内联函数,函数体必须十分简单,不能含有循环、条件、选择等复杂的结构,否则就不能做为内联函数了。事实上,即便你没有指定函数为内 联函数,有的编译系统也会自动将很简单的函数作为内联函数处理;而对于复杂的函数,即便你指定他为内联函数,系统也不会理会的。

函数和宏函数的区别就在于,宏函数占用了大量的空间,而函数占用了时间。大家要知道的是,函数调用是要使用系统的栈来保存数据的,如果编译器里有栈检查选 项,一般在函数的头会嵌入一些汇编语句对当前栈进行检查;同时,CPU也要在函数调用时保存和恢复当前的现场,进行压栈和弹栈操作,所以,函数调用需要一 些CPU时间。 而宏函数不存在这个问题。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所以仅仅是占用了空间,在频繁调用同一个宏函数的时候,该现象 尤其突出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel自定义函数是在Excel中使用Visual Basic for Applications(VBA)编写的自定义函数。通过定义自己的函数,可以实现一些复杂的数据计算和操作,以满足特定需求。 要创建Excel自定义函数,可以按照以下步骤进行操作: 1. 打开Excel文档,并进入编辑器(Visual Basic编辑器): - 可以通过在Excel中选择“工具”->“”->“Visual Basic编辑器”来进入编辑器。 - 也可以直接按下键盘上的“Alt”和“F11”键,以打开Visual Basic编辑窗口。 2. 在编辑器中创建一个新的模块: - 在Microsoft Visual Basic编辑器中,打开“插入”->“模块”,将会打开一个代码编辑框。 3. 在代码编辑框中编写自定义函数: - 使用“Function 函数名(参数列表) ... End Function”的语法来定义函数过程。 - 在函数过程中编写代码来实现所需的功能。 - 可以使用Excel的内置函数、条件语句、循环等来构建自定义函数。 4. 编辑好自定义函数后保存并返回到Excel文档页面: - 保存代码编辑器和编辑器中的修改。 - 关闭代码编辑器和编辑器,返回到Excel文档。 - 现在就可以在Excel的单元格中使用刚刚定义的自定义函数了。 使用自定义函数时,可以按以下格式在Excel单元格中调用: =S(参数1,参数2,参数3) 其中,参数1/2/3为要计算的单元格的下标,例如G17。 请注意,如果打开Excel时出现安全性的提示,可能会导致某些无法打开。您可以通过“工具”->“选项”->“安全性”->“安全性”将安全性设置为“低”来解决此问题。具体版本的设置请自行搜索解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值