參考
程式工程中往往遇到這樣的問題:某個變數是貫穿始終的,主函式以及不同的子函式都要用到這個變數,並且要呼叫子函式改變變數的值。這時候全域性變數就起到乙個橋梁作用,在函式外定義,在主函式中呼叫定義,在子函式a中呼叫並賦值,在子函式b中呼叫該變數,此時的值已經是改變之後的值。
用法:在主函式之前定義全域性變數(不包含在任何變數裡)
int pointnum;
//在主函式外定義
intmain()
注意這裡不要寫static,(我試過了會報錯。。。具體還沒搞清楚為什麼)
//呼叫
extern
int pointnum;
//全域性變數,匹配點對個數
在接下來的子函式a中也用extern呼叫全域性變數,並將函式執行中得到的資料賦給全域性變數,此時該變數的值已經被改變,無論接下來在主函式還是後面的子函式中用到,都是改變之後的值
inta(
)//子函式a
主函式在呼叫過子函式a之後,pointnum的值被徹底改變為viewmatches.size(),可以供子函式b使用
//呼叫子函式a,改變pointnum的值
a(srcimage1, srcimage2)
;//輸入兩幅圖
//呼叫子函式b,用到pointnum
solveab
(matchpoint, pointnum, m1, m2)
;//傳入匹配點座標,匹配點對個數pointnum,投影矩陣
for(
int i =
0; i < pointnum; i++
)//釋放matchpoint,主函式也用到pointnum
free
(matchpoint[i]
);
C定義全域性變數
程式工程中往往遇到這樣的問題 某個變數是貫穿始終的,主函式以及不同的子函式都要用到這個變數,並且要呼叫子函式改變變數的值。這時候全域性變數就起到乙個橋梁作用,在函式外定義,在主函式中呼叫定義,在子函式a中呼叫並賦值,在子函式b中呼叫該變數,此時的值已經是改變之後的值。用法 在主函式之前定義全域性變數...
定義全域性變數
inte ce property strong,nonatomic uiwindow window propertyboolislogin end synthesize window window synthesizeislogin end 那麼在其他的class裡,則可以通過下列 呼叫全域性變數 ...
C 如何定義全域性變數
在實際的操作過程中經常會遇到,form1中的變數需要傳入form2,或者控制項中的值需要傳入另外乙個窗體,這是只需要定義乙個全域性變數就可以了 1 定義全域性變數 public partial class form1 form 2 給全域性變數賦值 username convert.tostring...