riy*_*noa 1 c++ winapi pointers win64 long-integer
因此,当目标平台为32位时,我在Visual Studio 2005中可以完美地编译这些代码.但是,它不能在64位工作.我不明白为什么; 事实上,我从未见过很久以前的指针.它甚至是正确的C++吗?
#define REAL double
typedef REAL* point;
point *ptary; //(so it's basically double** ptary?)
long arylen = (long) ptary[0];
Run Code Online (Sandbox Code Playgroud)
提前致谢.
它似乎适用于32位系统,因为指针和long都是32位宽.它无法在64位系统上工作,因为指针是64位宽,但long(可能)仍然只有32位宽.
您可以轻松地打印出检查这个sizeof(double*)和sizeof(long).我的猜测是64位系统的输出分别为8和4.
如果需要一个能够保存指针的整数类型,请使用intptr_tfrom <stdint.h>.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |