대상 플랫폼이 32 비트 일 때 Visual Studio 2005에서 완벽하게 컴파일되는 기존 코드가 있습니다. 그러나 64 비트에서는 작동하지 않습니다. 나는 왜 그런지 이해하지 못한다. 사실 포인터가 오래전에 캐스팅 된 것을 본 적이 없습니다. 심지어 올바른 C++인가?long * double * 저장 (C++)
#define REAL double
typedef REAL* point;
point *ptary; //(so it's basically double** ptary?)
long arylen = (long) ptary[0];
미리 감사드립니다.
언어의 측면에서 정확하지만 사람들이 캐스팅에 대해 경고하는 경우 이와 같은 이유 (정확하게 말해서)와 같은 이유, 즉 휴대 성의 부족 때문입니다. –
'long'은 64 비트 Linux 및 다른 플랫폼에서 64 비트이므로, 코드를 Windows로 이식 할 때 나타나는 일반적인 오류입니다. – ecatmur