讓說我有一個數組,這是非常大的verybigvariable
成本用FORTRAN函數(或任何其他語言)的
而且我已經定義了都這樣做
function myfunc(var) result(res)
real:: var(:,:,:),res
...
...
...
end function myfunc
一些操作的功能我問題是,當我打電話這樣的功能,像這樣
myvar=myfunc(verybigvariable)
會發生什麼?它是否重複我的變量,以便在執行該函數期間在RAM中保存2X空間?如果是這樣,我該如何防止呢? (在一個簡單的程序中,我知道,我可以在沒有任何參數的情況下定義該函數,並且使用現有的變量,但是如果我正在編程一個模塊,似乎我必須在參數中包含該參數)
我只能說C,但在C中,參數總是被複制。你可以通過使用指針來解決這個問題,指針對每個系統都有一個固定的,小的尺寸。另外,在C中,默認情況下,數組作爲指針傳遞,但是我再也不會爲fortran說話了。 – antonijn 2013-03-24 14:46:11
Thx,在任何語言或大多數語言中可能都是一樣的。我會學習指針。 – Hasan 2013-03-24 14:47:16
哦,陣列的「自動指針」功能非常好。我希望Fortran也有。 – Hasan 2013-03-24 14:48:41