我的FORTRAN 77碼的一部分轉化爲C++FORTRAN等價於C++語言
DIMENSION ARRAY(513),JRRAY(2,513)
EQUIVALENCE (ARRAY(1),JRRAY(1,1))
這是每個變量名開始與I隱含代碼,J,K,L,M,N,O, P隱含地被視爲整數類型。因此,在這裏我們有一個名爲ARRAY的雙精度數組和一個名爲JRRAY的整型數組。
等價性語句將兩個數組的起點指向相同的內存位置。然而,不管怎樣,當ARRAY(I)被調用時,這些字節被解釋爲兩個不同的形式,或者當JRRAY(I,J)被調用時(至少我認爲會發生什麼),這些字節被解釋爲不同的形式。
C++中是否有類似的方法,其中相同的內存位置可以解釋爲不同的類型?
或者與FORTRAN中的EQUIVALENCE相同,但是在C++中。
回想一下,在fortran數組中,按列的主要順序存儲,所以'JRRAY(1,X)'和'JRRAY(2,X)'指向'ARRAY(X)'的連續部分。 –
您的意思是對錶示的實際重新解釋還是自動轉換?即如果我將pi存儲在'ARRAY'中並從'JRRAY'中讀出,我會得到'3'還是與'double'的位模式相對應的數字? – Quentin
@Quentin FORTRAN只是重新解釋表示,所以這大概是他想在C++中做的。 – Barmar