因此,當目標平臺是32位時,我已經可以在Visual Studio 2005中完美編譯這些代碼。但是,它在64位中不起作用。我不明白爲什麼;事實上,我從來沒有見過一個指針被投射到很久以前。它甚至是正確的C++?在長時間存儲double *(C++)
#define REAL double
typedef REAL* point;
point *ptary; //(so it's basically double** ptary?)
long arylen = (long) ptary[0];
在此先感謝。
正確的語言表達方式,但是當人們警告關於表演的時候,正是出於這樣的原因(其中包括缺乏便攜性)。 – 2012-07-12 10:14:31
請注意,在64位Linux和其他平臺上,「long」是64位,所以在將代碼移植到Windows時,這是一個常見錯誤。 – ecatmur 2012-08-09 15:57:29