C定義全域性變數

2021-08-31 19:15:49 字數 946 閱讀 7570

程式工程中往往遇到這樣的問題:某個變數是貫穿始終的,主函式以及不同的子函式都要用到這個變數,並且要呼叫子函式改變變數的值。這時候全域性變數就起到乙個橋梁作用,在函式外定義,在主函式中呼叫定義,在子函式a中呼叫並賦值,在子函式b中呼叫該變數,此時的值已經是改變之後的值。

用法:在主函式之前定義全域性變數(不包含在任何變數裡)

int pointnum;

//全域性變數,匹配點對個數

在主函式main中呼叫,要加關鍵字extern

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...