LPVOID 一个没有类型的指针

LPVOID 类型 原文链接

LPVOID是一个没有类型的指针,也就是说你可以将任意类型的指针赋值给LPVOID类型的变量(一般作为传递),然后在使用的时候再转换回来。 可以将其理解为long型的指针,指向void型。

头文件windef.h中有

typedef void far *LPVOID

32-bit指针,指向一个未指定类型的数据

例如:

class CMyClass {   

    void Start();  

    static UINT StartThread(LPVOID lParam);   

};   

void CMyClass::Start() {   

   AfxBeginThread(StartThread, this);   

}   

UINT CMyClass::StartThread(LPVOID lParam) {   

  CMyClass * pMyClass = (CMyClass*)lParam;  

  ...   

  return 0;   

}

那么void是什么东西?
 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。

far又是什么东西 ?

far关键字就是和内存寻址有关。因为代码段和数据段都有一定的限制,比如64K。默认是near近指针,数据和代码可以从本段内调用。如果要调用段外的变量或函数就要声明成far远指针,典型的用法就是调用DLL的远堆变量,它是“远”的。far和near在现在Win32平台下没什么关系了 因为现在内存寻址是flat模式, 也就是平坦的4GB寻址.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值