请看POSITION的定义(AFX.H中):
// abstract iteration position
struct __POSITION { };
typedef __POSITION* POSITION;__POSITION结构怎么是空的啊?而MSDN上的定义:
struct __POSITION { int unused; };
typedef __POSITION* POSITION;这个不是空的,两者怎么不同?我快被搞糊涂了

解决方案 »

  1.   

    微软定义的有些类型的确有点变态,其实你只要把POSITION当成整型用就行了不用管它里面有没有成员变量,因为他只用POSITION的地址,用这个地址来存储位置信息其实我觉得这样定义或许好一些typedef UINT POSITION;不知道微软那样定义的好处在哪,还不容易理解
      

  2.   

    因为你用的POSITION是一个指针类型,当然可以用,不用管指针指向哪里。所以MSDN上也说,不要自己修改POSITION类型的变量。
      

  3.   

    我也有点不明白了,sizeof的结果是1就是说__position是一个空的结构体,
    那position的信息到底是存在什么地方呢?
      

  4.   

    sizeof(__position) = 1
    因为 __position 是个空结构使用POSITION时,用它的地址值,不要用它地址所指的内容POSITION 在CLISTCTRL中就有使用
      

  5.   

    我试了一下,POSITION型数据,可以用强制转换指向任何对象,
    跟void相似
    可能这就是问题所在