恶意代码分析实战(英文原版PDF)
第五章自定义函数
在函数两次调用之间本地数据的存储
当一个函数执行结束,由这个函数创建的特定的工作区将会被破坏,所以在这个函数中的所有本地变量将会消失。当这个函数下一次被调用的时候,一个新的工作区将会被创建,而且所有本地变量的值都返回为默认。这种特性是我们所期望的,因为只有这样MATLAB函数才能被重复调用而不受上一次影响。但在有些情况下,多次调用一个函数,存储一些本地变量的信息还是有用的。我们想创建一个计数器,对函数调用的次数进行计数。如果每一次函数结束执行,计算器就会被破坏,那么计数不超过1。
从MATLAB5.1开始,MATLAB中就有了一个特殊的机制。这种机制允许多次调用一个函数时,保存本地变量。持久内存(persistent memory)是内存的一种类型,在函数上一次调用之后,这一步调用之前,本地变量被保存在持久内存,值不变。持久变量应用语句声明。它的形式如下: persistent var1 var2 var3 ... var1,var2,var3...是存储于持久内存中的变量。好的编程习惯在函数两次调用之间有持久内存保存本地数据。
我们要计算某些变量的平均数和标准差,MATLAB内建函数mean和std就是进行统计量计算的函数。如果你对更多MATLAB编程技巧感兴趣,可以参考MATLAB编程技巧和matlab的M函数编程技巧,这些资源提供了详尽的指导和实例。
对于Windows系统的内存函数调用,你可以查看windows系统内存函数调用.png,这将帮助你理解如何更好地管理内存。对于那些想要了解如何在C#中调用MATLAB函数的人,可以参考C#调用matlab函数混合编程。
如果你还在寻找更多关于函数调用的知识,可能会对如何提高调用WINDOWS API函数编程技巧感兴趣。这些资源不仅能扩展你的知识,还能提高你的编程效率,让你在编程的道路上游刃有余!