在matlab中,和其他語言一樣,函式中的變數一把都是區域性變數,也就是說,在函式呼叫完畢後,變數就會被釋放。但是有些時候回希望上次改變的變數在下一次呼叫時也能發揮作用。這時候就要永達靜態變數。
關鍵字:
persistent
用例:
function rndnum = rnd(x)
%produce random numbers
persistent x;
if isempty(x)
x=0.5;
enda = 17;
b = 139;
c = 256;
x = mod(a*x+b);
rndnum=x/c;
注意:
上面對x的初始化,我們不能直接用persistent x = 0.5; 而應該要先判斷x是否已經賦值,然後在初始化。
global
用例:
function y = fun1()
global x;
x=133;
y=3*x;
function y = fun2()
global x;
y=3/x;
全域性變數與靜態變數
1.全域性變數 作用域為定義處到檔案末尾,但是在程式開始就占用記憶體了。include include 這樣是可以的 extern int g int k 10 int main int g 10 include include 這樣也是可以的,但是沒必要。int g 10 extern int g...
全域性變數與全域性靜態變數的區別
全域性變數與全域性靜態變數的區別 a 若程式由乙個原始檔構成時,全域性變數與全域性靜態變數沒有區別。b 若程式由多個原始檔構成時,全域性變數與全域性靜態變數不同 全域性靜態變數使得該變數成為定義該變數的原始檔所獨享,即 全域性靜態變數對組成該程式的其它原始檔是無效的。c 具有外部鏈結的靜態 可以在所...
全域性變數與全域性靜態變數的區別
全域性變數與全域性靜態變數的區別 a 若程式由乙個原始檔構成時,全域性變數與全域性靜態變數沒有區別。b 若程式由多個原始檔構成時,全域性變數與全域性靜態變數不同 全域性靜態變數使得該變數成為定義該變數的原始檔所獨享,即 全域性靜態變數對組成該程式的其它原始檔是無效的。c 具有外部鏈結的靜態 可以在所...