读书人

关于POSITION的有关问题

发布时间: 2012-02-16 21:30:36 作者: rapoo

关于POSITION的问题
请看POSITION的定义(AFX.H中):
// abstract iteration position
struct __POSITION { };
typedef __POSITION* POSITION;

__POSITION结构怎么是空的啊?

而MSDN上的定义:
struct __POSITION { int unused; };
typedef __POSITION* POSITION;

这个不是空的,两者怎么不同?我快被搞糊涂了

[解决办法]
微软定义的有些类型的确有点变态,

其实你只要把POSITION当成整型用就行了

不用管它里面有没有成员变量,因为他只用

POSITION的地址,用这个地址来存储位置信息

其实我觉得这样定义或许好一些

typedef UINT POSITION;

不知道微软那样定义的好处在哪,还不容易理解
[解决办法]
因为你用的POSITION是一个指针类型,当然可以用,不用管指针指向哪里。所以MSDN上也说,不要自己修改POSITION类型的变量。
[解决办法]
sizeof(__position) = 1
因为 __position 是个空结构

使用POSITION时,用它的地址值,不要用它地址所指的内容

POSITION 在CLISTCTRL中就有使用

读书人网 >VC/MFC

热点推荐