数学建模社区-数学中国

标题: 用全局内存分享数据 [打印本页]

作者: 森之张卫东    时间: 2015-9-17 22:45
标题: 用全局内存分享数据
用全局内存分享数据
我们已经看到了,函数与程序之间交换数据是通过参数列表来完成的。当一个函数被调用时,每一个实参都会被复制,而这个中复制量将会在函数用到。
对于参数列表还有一些补充,MATLAB函数与每一个参数或基本工作区通过全局内存交换数据。
全局内存是指内存的一种特殊类型,它能够被所有的工作区访问。如果一个变量在函数中被声明全局变量,那么它将占用的是全局内存,而不是本地工作区。如果相同的变量在另一个函数中被声明为全局变量,那么这个变量所占有内存区域就是第一个函数中的相同变量。
声明有全局变量的脚本文件或函数将有办法访问相同的值,所以全局变量为函数之间分享数据提供了一个方法。
全局变量的声明要用到global主语句,基本形式如下

global var1 var2 var3 ...


其中v等ar1,var2,var3等是用全局内存的变量。为了方便,全局变量将在函数开头被声明,但是实际上没有这个必要。
好的编程习惯
最是把全局变量声明在函数的开头,这样可以区别于本地变量。
每一个全局变量在函数第一次使用之前必须声明如果在本地工作区中已经被创建,那么声明为再次声明全局变量将会产生错误。为了避免这种错误,在函数中的初始注释行之后和第一个可执行性语句之前声明全局变量。
好的编程习惯
在函数中的初始注释行之后和第一个可执行性语句之前声明全局变量
全局变量尤其适用于在许多函数分享大容量数据,这样全部的数据在每一次被函数调用时就不必再复制了,用全局变量在函数之间交换数据的不利一面为:函数只能为特定的数据工作。通过函输入数据参数交换数据的数能用不同的参数调用它,而用全局变量进行数据交换的函数必须进行修改,以许它和不同的数据进行工作。

好的编程习惯
在一个程序,你能利用全局内存,在函数之间对大规模数据进行交换。









欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5